

| Directory | Changes | Lines of Code | Lines per Change |
|---|---|---|---|
| Totals | 2148 (100.0%) | 77339 (100.0%) | 36.0 |
| SubStage/ | 207 (9.6%) | 21437 (27.7%) | 103.5 |
| SubSonic/DataProviders/ | 272 (12.7%) | 8083 (10.5%) | 29.7 |
| SubSonic/Sql Tools/ | 123 (5.7%) | 5569 (7.2%) | 45.2 |
| SubSonic/Controls/Calendar/lang/ | 52 (2.4%) | 4938 (6.4%) | 94.9 |
| SubSonic/ActiveRecord/ | 184 (8.6%) | 4558 (5.9%) | 24.7 |
| SubSonic/Controls/Calendar/ | 14 (0.7%) | 4415 (5.7%) | 315.3 |
| SubSonic/Controls/ | 102 (4.7%) | 3686 (4.8%) | 36.1 |
| SubSonic.Tests/ | 150 (7.0%) | 3389 (4.4%) | 22.5 |
| SubSonic/ | 155 (7.2%) | 2814 (3.6%) | 18.1 |
| SubSonic/Query2/ | 41 (1.9%) | 2506 (3.2%) | 61.1 |
| SubSonic/Sugar/ | 56 (2.6%) | 2182 (2.8%) | 38.9 |
| SubSonic/CodeGeneration/Templates/ | 156 (7.3%) | 1889 (2.4%) | 12.1 |
| SubSonic/CodeGeneration/ | 65 (3.0%) | 1676 (2.2%) | 25.7 |
| SubSonic/SqlQuery/ | 79 (3.7%) | 1428 (1.8%) | 18.0 |
| SubCommander/ | 57 (2.7%) | 989 (1.3%) | 17.3 |
| SubSonic/SqlQuery/SqlGenerators/ | 55 (2.6%) | 945 (1.2%) | 17.1 |
| SubSonic/CodeLanguage/ | 25 (1.2%) | 756 (1.0%) | 30.2 |
| SubSonic/QueryEngine/ | 20 (0.9%) | 739 (1.0%) | 36.9 |
| / | 31 (1.4%) | 632 (0.8%) | 20.3 |
| SubSonic/HttpHandlers/ | 25 (1.2%) | 583 (0.8%) | 23.3 |
| SubSonicCentral/ | 38 (1.8%) | 543 (0.7%) | 14.2 |
| SubSonic/Migrations/ | 10 (0.5%) | 490 (0.6%) | 49.0 |
| SubSonic/Query2/SqlGenerators/ | 19 (0.9%) | 434 (0.6%) | 22.8 |
| SubSonicCentral/inc/ | 26 (1.2%) | 407 (0.5%) | 15.6 |
| SubStage/Properties/ | 13 (0.6%) | 352 (0.5%) | 27.0 |
| SubSonic/QueryEngine/SqlParsers/ | 7 (0.3%) | 352 (0.5%) | 50.2 |
| SubSonic.Tests/SqlQuery/ | 36 (1.7%) | 244 (0.3%) | 6.7 |
| SubSonic/Controls/Calendar/skin/ | 13 (0.6%) | 243 (0.3%) | 18.6 |
| SubSonic/Properties/ | 11 (0.5%) | 213 (0.3%) | 19.3 |
| SubSonic.Tests/Query2/ | 7 (0.3%) | 185 (0.2%) | 26.4 |
| SubSonic.Tests/Migrations/ | 3 (0.1%) | 149 (0.2%) | 49.6 |
| SubSonic/Controls/Resources/ | 2 (0.1%) | 143 (0.2%) | 71.5 |
| SubSonic.Migrations/ | 12 (0.6%) | 122 (0.2%) | 10.1 |
| SubSonic.Tests/Repository/ | 3 (0.1%) | 62 (0.1%) | 20.6 |
| SubSonic.Tests/SqlGenerators/ | 3 (0.1%) | 57 (0.1%) | 19.0 |
| SubCommander/Properties/ | 3 (0.1%) | 30 (0.0%) | 10.0 |
| SubSonic.Tests/Migrations/MigrationFiles/ | 2 (0.1%) | 28 (0.0%) | 14.0 |
| StarterSite/Modules/ | 1 (0.0%) | 14 (0.0%) | 14.0 |
| SubSonicCentral/res/ | 5 (0.2%) | 11 (0.0%) | 2.2 |
| SubSonic.Tests/Properties/ | 4 (0.2%) | 11 (0.0%) | 2.7 |
| SubSonic.Migrations/Properties/ | 3 (0.1%) | 9 (0.0%) | 3.0 |
| StarterSite/App_Code/CMS/ | 1 (0.0%) | 9 (0.0%) | 9.0 |
| StarterSite/ | 8 (0.4%) | 8 (0.0%) | 1.0 |
| StarterSite/Admin/ | 8 (0.4%) | 7 (0.0%) | 0.8 |
| SubSonicCentral/App_Themes/Default/ | 1 (0.0%) | 1 (0.0%) | 1.0 |
| StarterSite/Modules/ContentManager/ | 1 (0.0%) | 1 (0.0%) | 1.0 |
| SubSonicCentral/res/scripts/ | 2 (0.1%) | 0 (0.0%) | 0.0 |
| SubSonicCentral/res/img/ | 2 (0.1%) | 0 (0.0%) | 0.0 |
| SubSonicCentral/Bin/ | 14 (0.7%) | 0 (0.0%) | 0.0 |
| SubSonic/obj/Debug/ | 4 (0.2%) | 0 (0.0%) | 0.0 |
| SubSonic.Tests/obj/Debug/ | 3 (0.1%) | 0 (0.0%) | 0.0 |
| SubSonic.Setup/Release/ | 3 (0.1%) | 0 (0.0%) | 0.0 |
| SubSonic.Setup/Debug/ | 2 (0.1%) | 0 (0.0%) | 0.0 |
| SubSonic.Setup/ | 2 (0.1%) | 0 (0.0%) | 0.0 |
| SubCommander/obj/Debug/ | 6 (0.3%) | 0 (0.0%) | 0.0 |
| StarterSite/Bin/ | 1 (0.0%) | 0 (0.0%) | 0.0 |

FIXED: "ScriptData incorrect for unicode columns" See: http://code.google.com/p/subsonicproject/issues/detail?id=64
FIXED: "IsOnline() always returns true" See: http://code.google.com/p/subsonicproject/issues/detail?id=70
FIXED: "2.2 Doesnt seem to support SQL Server 2008 DateTime2 and Date" See: http://code.google.com/p/subsonicproject/issues/detail?id=74
FIXED: "In(...) and NotIn(...) throw "Failed to convert parameter value from a String to a ..." exception" See: http://code.google.com/p/subsonicproject/issues/detail?id=76
FIXED: "Using GetRecordCount() with DISTINCT and OrderBy" See: http://code.google.com/p/subsonicproject/issues/detail?id=78
FIXED: SQL Server 2008 SP1 Incorrectly Identified as SQL 2000.
FIXED: Build configuration issues and SubSonicCentral assembly references.
ADDED: "Get a cookie's subvalue" See: http://code.google.com/p/subsonicproject/issues/detail?id=72
CHANGED: SubStage forums tab now points to stackoverflow.com.
162 lines of code changed in 14 files:
FIXED: SqlQuery - ANSISqlGenerator added duplicate DISCTINCT values resulting in malformed queries.
FIXED: SubStage - Slow performance with mapped network drives. Excluded network drives from SubStage file navigator. This greatly improves performance for some users.
FIXED: Test Data - Updated scripts to correctly reflect object dependencies and prevent errors on execution.
ADDED: Re-added SubSonicCentral and SubStage projects.
ADDED: SubSonic.Tests - Added missing SouthwindRepository generated files.
UPDATED: ComponentFactory.Krypton.Toolkit.dll, MbUnit.Framework.dll, MySql.Data.dll, QuickGraph.dll, QuickGraph.Algorithms.dll, Refly.dll, TestFu.dll
UPDATED: Global - Assembly versions changed to 2.2.1.0
CHANGED: Global - AutoProperties now used where possible.
CHANGED: Global - Object initializers now used where possible.
REMOVED: Sandbox Project
1014 lines of code changed in 46 files:
FIXED: Scaffold - Update failure when user-generated primary keys are employed.
3 lines of code changed in 1 file:
FIXED: SubSonic Treats SQL Server 2008 Like SQL 2000. See: http://www.codeplex.com/WorkItem/View.aspx?ProjectName=subsonic&WorkItemId=19388
3 lines of code changed in 2 files:
CHANGED: Update several library dependencies: SQL Server Management Objects -> 10.0.1600.22; Enterprise Library -> 4.1.0.0; System.Data.SQLite -> 1.0.60.0; MySql.Data -> 5.2.3; ComponentFactory.Krypton.Toolkit -> 3.0.6.0
16 lines of code changed in 2 files:
FIXED: SetColumnValue() Assigns CurrentValue System.DBNull Instead of "NULL". See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=14998
FIXED: Oracle Stored Procedure Output Parameters are not Properly Prefixed. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=18100
FIXED: GetSPSchemaCollection() Attempts to Assign Invalid Stored Procedure Schema Value Under Oracle Provider. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17986
FIXED: GetSPSchemaCollection() Attempts to Assign Invalid Stored Procedure Schema Value Under Oracle Provider (Second Report). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17909
FIXED: Invalid SQL May be Generated When Attempting to Update a Record Where Values Have Not Changed. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16626
FIXED: Invalid SQL May be Generated When Attempting to Update a Record Where Values Have Not Changed (Second Report). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17866
71 lines of code changed in 8 files:
FIXED: IsLoaded Flag May be Improperly Set to "true". See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17821
FIXED: Manual Modification of Audit Field Can Create Update Exception. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17825
FIXED: SqlDataProvider INFORMATION_SCHEMA Queries Should Respect Original Casing. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17844
42 lines of code changed in 4 files:
FIXED: AddParams() Does Not Set Stored Procedure Parameter Precision Value (Report #1). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17428
FIXED: AddParams() Does Not Set Stored Procedure Parameter Precision Value (Report #2). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17699
FIXED: SqlQuery.GetRecordCount() May Return "Specified Cast is not Valid". See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17813
FIXED: Query.SetSelectList Method Documentation Should Indicate Format of Parameter. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17584
FIXED: Generated VB Classes Do Not Properly Bind. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17723
FIXED: MySqlGenerator.SqlQuery.Paged() Generates Invalid SQL. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17687
17 lines of code changed in 6 files:
FIXED: SqlQuery.Select.Top() Generates Malformed SQL. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17546 and http://code.google.com/p/subsonicproject/issues/detail?id=24
FIXED: ANSISqlGenerator.BuildConstraintSQL() May Improperly Reuse Parameter Name. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17530
FIXED: ANSISqlGenerator.BuildConstraintSQL() May Not Correctly Set Parameter Type. See: http://code.google.com/p/subsonicproject/issues/detail?id=22
4 lines of code changed in 3 files:
FIXED: SQLiteprovider Maps BIT Data Type to STRING. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17493
FIXED: ListChanged Event May Fire Multiple Times. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17492
FIXED: SetPKValues() Does Not Update Null PK Values When Lazy Loading is Enabled. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17447
24 lines of code changed in 3 files:
ADDED: SubStage - Added CodeGenerationPath overrides at provider and project levels.
CHANGED: SubStage - File browser now navigates to code generation output directory when clicking a provider or project node.
CHANGED: SubStage - If a provider node is selected when the generating code button is pressed, only the code for the selected provider is generated. Code for all providers is generated if the project node is selected.
394 lines of code changed in 5 files:
FIXED: DropDown.Where Property is not Correctly Set. See: http://code.google.com/p/subsonicproject/issues/detail?id=6
FIXED: SqlQuery Does Not Properly Set ProviderName Property. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17435
FIXED: Generated Struct Members Should be Marked "readonly". See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17424 and http://code.google.com/p/subsonicproject/issues/detail?id=11
FIXED: AssemblyInfo.cs version issue introduced in revision 473 (Thanks Adam!)
CHANGED: MySql.Data.dll updated to version 5.2
CHANGED: System.Data.SQLite.DLL updated to version 1.0.52
CHANGED: EnterpriseLibrary assemblies updated to version 4.0
REMOVED: Old and unreferenced assemblies.
47 lines of code changed in 14 files:
FIXED: StoredProcedure.QueryCommand is not Properly Initialized. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17342
FIXED: Turkish Culture Issues in SqlQuery Aggregate Generation. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17356
FIXED: ManyManyList Controls do not Properly Set Checkbox State. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=12068
FIXED: LavaBlastManyManyList.BuildMappedElementCommand() Generates Improper SQL. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17361
CHANGED: Fixed minor code documentation issues.
CHANGED: Added signing to SubSonic.Migrations.
CHANGED: Minor changes to build configuration.
CHANGED: Updated help file builder configuration.
CHANGED: Updated assembly build versions to 2.1.1
128 lines of code changed in 16 files:
ADDED: Some basic release info to SubSonicCentral/Default.aspx
CHANGED: Added SubSonic.Migrations to SandCastle Help File Builder. Removed SubSonic.SubCommander.
FIXED: Namespace Parsing Error in CodeRunner.GetTypeName(). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17264
FIXED: DB.Update() Doesn't Allow Multiple SETs. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=15768
37 lines of code changed in 4 files:
FIXED: Aggregates With Where (Not Having) Creates bad SQL (testcase included). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16936
FIXED: Aggregates With Where (Not Having) Creates bad SQL (testcase included) - Updated Patch. (Thanks Geoff!) See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17245
FIXED: SqlDataProvider.GetSelectSql() - ORDER BY Columns Must be in SelectList When IsDistinct=true. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=11763
FIXED: ANSISqlGenerator.PAGING_SQL Contains Incorrect Paging Definition. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17075
243 lines of code changed in 10 files:
FIXED: DB.Save() Doesn't Insert Records if the PrimaryKey is not AutoIncrement. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17008
FIXED: DB.Save() Doesn't Insert Records When Primary Key is UNIQUEIDENTIFIER. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17187
FIXED: SubStage Doesn't Save Generated Code Language. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17041
ADDED: Patch for Improved Implementation of SqlQuery.GetRecordCount(). See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17157
151 lines of code changed in 8 files:
CHANGED: Global code clean up and reformatting
CHANGED: Updated System.Data.SQLite.DLL to 1.0.51.0
3933 lines of code changed in 120 files:
FIXED: Stored Procedures Dropping QueryCommand Parameters. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17173
16 lines of code changed in 1 file:
FIXED: SqlQuery.cs, Insert.cs - Compile Errors in revisions 460 through 462.
FIXED: VB_StructsTemplate.aspx - Additional character escapes for reserved keywords.
76 lines of code changed in 5 files:
FIXED: Various Turkish Character Set String Comparison Issues. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16983
FIXED: VB_StructsTemplate.aspx Does Not Properly Escape "Select" Methods. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16949
FIXED: PrimaryKey Methods Not Generated When Using SQLite Data Provider. See: http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=17073
27 lines of code changed in 5 files:
(244 more)