Thread: npgsql - Npgsql2: In new branch: Change behaviour of datareader to be

npgsql - Npgsql2: In new branch: Change behaviour of datareader to be

From
talliesin@pgfoundry.org (User Talliesin)
Date:
Log Message:
-----------
In new branch:

Change behaviour of datareader to be lazy-loaded as read rather than read in one batch.

Many changes to facilitate above change.

Only use UTF-8 encoding.

Use of typed collections instead of untyped, throughout.

Better recovery from thread-abort.

Better survival of connection damage. Connections retrieved from pool checked before use.

Add separate test cases for version2 protocol, so that version2 and version3 can be simultaneously tested.

Change test cases to close datareaders after use. The documentation for ExecuteReader says "While the IDataReader is in
use,the associated IDbConnection is busy serving the IDataReader. While in this state, no other operations can be
performedon the IDbConnection other than closing it. This is the case until the Close method of the DataReader is
called.If the DataReader is created with CommandBehavior set to CloseConnection, closing the DataReader closes the
connectionautomatically." Npgsql previously didn't enforce this rule, but has to with these changes. All test cases
thatbroke this rule therefore had to be changed. 

Tags:
----
RELEASE_2_0_ALPHA3

Modified Files:
--------------
    Npgsql2/src:
        Npgsql.build (r1.11 -> r1.11.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql.build.diff?r1=1.11&r2=1.11.2.1)
        Npgsql.csproj (r1.9 -> r1.9.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql.csproj.diff?r1=1.9&r2=1.9.2.1)
        Npgsql.sln (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql.sln.diff?r1=1.3&r2=1.3.2.1)
        Npgsql2008.csproj (r1.7 -> r1.7.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql2008.csproj.diff?r1=1.7&r2=1.7.2.1)
    Npgsql2/src/NpgsqlTypes:
        ArrayHandling.cs (r1.1 -> r1.1.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/ArrayHandling.cs.diff?r1=1.1&r2=1.1.2.1)
        FastPath.cs (r1.4 -> r1.4.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/FastPath.cs.diff?r1=1.4&r2=1.4.2.1)
        LargeObjectManager.cs (r1.4 -> r1.4.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/LargeObjectManager.cs.diff?r1=1.4&r2=1.4.2.1)
        NpgsqlDbType.cs (r1.8 -> r1.8.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/NpgsqlDbType.cs.diff?r1=1.8&r2=1.8.2.1)
        NpgsqlTypeConverters.cs (r1.3 -> r1.3.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/NpgsqlTypeConverters.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlTypes.cs (r1.3 -> r1.3.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/NpgsqlTypes.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlTypesHelper.cs (r1.11 -> r1.11.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/NpgsqlTypes/NpgsqlTypesHelper.cs.diff?r1=1.11&r2=1.11.2.1)
    Npgsql2/src/Npgsql:
        AssemblyInfo.cs (r1.8 -> r1.8.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/AssemblyInfo.cs.diff?r1=1.8&r2=1.8.2.1)
        NpgsqlAsciiRow.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlAsciiRow.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlBackEndKeyData.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlBackEndKeyData.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlBind.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlBind.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlCancelRequest.cs (r1.3 -> r1.3.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCancelRequest.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlClosedState.cs (r1.8 -> r1.8.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlClosedState.cs.diff?r1=1.8&r2=1.8.2.1)
        NpgsqlCommand.cs (r1.17 -> r1.17.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCommand.cs.diff?r1=1.17&r2=1.17.2.1)
        NpgsqlCommandBuilder.cs (r1.11 -> r1.11.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCommandBuilder.cs.diff?r1=1.11&r2=1.11.2.1)
        NpgsqlConnectedState.cs (r1.3 -> r1.3.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlConnectedState.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlConnection.cs (r1.14 -> r1.14.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlConnection.cs.diff?r1=1.14&r2=1.14.2.1)
        NpgsqlConnectionStringBuilder.cs (r1.1 -> r1.1.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlConnectionStringBuilder.cs.diff?r1=1.1&r2=1.1.2.1)
        NpgsqlConnector.cs (r1.12 -> r1.12.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlConnector.cs.diff?r1=1.12&r2=1.12.2.1)
        NpgsqlConnectorPool.cs (r1.6 -> r1.6.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlConnectorPool.cs.diff?r1=1.6&r2=1.6.2.1)
        NpgsqlCopyFormat.cs (r1.1 -> r1.1.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCopyFormat.cs.diff?r1=1.1&r2=1.1.2.1)
        NpgsqlCopyIn.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCopyIn.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlCopyInState.cs (r1.4 -> r1.4.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCopyInState.cs.diff?r1=1.4&r2=1.4.2.1)
        NpgsqlCopyOut.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCopyOut.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlCopyOutState.cs (r1.4 -> r1.4.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCopyOutState.cs.diff?r1=1.4&r2=1.4.2.1)
        NpgsqlCopySerializer.cs (r1.1 -> r1.1.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlCopySerializer.cs.diff?r1=1.1&r2=1.1.2.1)
        NpgsqlDataReader.cs (r1.7 -> r1.7.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlDataReader.cs.diff?r1=1.7&r2=1.7.2.1)
        NpgsqlDescribe.cs (r1.3 -> r1.3.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlDescribe.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlError.cs (r1.2 -> r1.2.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlError.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlException.cs (r1.6 -> r1.6.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlException.cs.diff?r1=1.6&r2=1.6.2.1)
        NpgsqlExecute.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlExecute.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlFlush.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlFlush.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlMediator.cs (r1.5 -> r1.5.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlMediator.cs.diff?r1=1.5&r2=1.5.2.1)
        NpgsqlMessageTypes.cs (r1.4 -> r1.4.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlMessageTypes.cs.diff?r1=1.4&r2=1.4.2.1)
        NpgsqlNotificationEventArgs.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlNotificationEventArgs.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlParameter.cs (r1.11 -> r1.11.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlParameter.cs.diff?r1=1.11&r2=1.11.2.1)
        NpgsqlParameterCollection.cs (r1.5 -> r1.5.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlParameterCollection.cs.diff?r1=1.5&r2=1.5.2.1)
        NpgsqlParameterStatus.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlParameterStatus.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlParse.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlParse.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlPasswordPacket.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlPasswordPacket.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlQuery.cs (r1.2 -> r1.2.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlQuery.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlReadyState.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlReadyState.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlRow.cs (r1.2 -> r1.2.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlRow.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlRowDescription.cs (r1.4 -> r1.4.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlRowDescription.cs.diff?r1=1.4&r2=1.4.2.1)
        NpgsqlStartupPacket.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlStartupPacket.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlStartupState.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlStartupState.cs.diff?r1=1.2&r2=1.2.2.1)
        NpgsqlState.cs (r1.7 -> r1.7.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlState.cs.diff?r1=1.7&r2=1.7.2.1)
        NpgsqlSync.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlSync.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlTransaction.cs (r1.3 -> r1.3.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlTransaction.cs.diff?r1=1.3&r2=1.3.2.1)
        NpgsqlTransactionCallbacks.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlTransactionCallbacks.cs.diff?r1=1.2&r2=1.2.2.1)
        PGUtil.cs (r1.3 -> r1.3.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/PGUtil.cs.diff?r1=1.3&r2=1.3.2.1)
        PGUtil.resx (r1.1 -> r1.1.2.1)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/PGUtil.resx.diff?r1=1.1&r2=1.1.2.1)
    Npgsql2/src/Npgsql/SqlGenerators:
        SqlBaseGenerator.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/SqlGenerators/SqlBaseGenerator.cs.diff?r1=1.2&r2=1.2.2.1)
        SqlDeleteGenerator.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/SqlGenerators/SqlDeleteGenerator.cs.diff?r1=1.2&r2=1.2.2.1)
        SqlInsertGenerator.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/SqlGenerators/SqlInsertGenerator.cs.diff?r1=1.2&r2=1.2.2.1)
        SqlSelectGenerator.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/SqlGenerators/SqlSelectGenerator.cs.diff?r1=1.2&r2=1.2.2.1)
        SqlUpdateGenerator.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/SqlGenerators/SqlUpdateGenerator.cs.diff?r1=1.2&r2=1.2.2.1)
        VisitedExpression.cs (r1.2 -> r1.2.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/SqlGenerators/VisitedExpression.cs.diff?r1=1.2&r2=1.2.2.1)
    Npgsql2/src/Npgsql/Web:
        NpgsqlMembershipProvider.cs (r1.4 -> r1.4.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/Web/NpgsqlMembershipProvider.cs.diff?r1=1.4&r2=1.4.2.1)
        NpgsqlProfileProvider.cs (r1.5 -> r1.5.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/Web/NpgsqlProfileProvider.cs.diff?r1=1.5&r2=1.5.2.1)
        NpgsqlRoleProvider.cs (r1.5 -> r1.5.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/Web/NpgsqlRoleProvider.cs.diff?r1=1.5&r2=1.5.2.1)

Added Files:
-----------
    Npgsql2/src:
        .cvsignore (r1.1.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/.cvsignore?rev=1.1.2.1&content-type=text/x-cvsweb-markup)
    Npgsql2/src/Npgsql:
        NpgsqlRow.resx (r1.1.2.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlRow.resx?rev=1.1.2.1&content-type=text/x-cvsweb-markup)

Removed Files:
-------------
    Npgsql2/src/Npgsql:
        NpgsqlBinaryRow.cs
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlBinaryRow.cs)
        NpgsqlResultSet.cs
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgsql/Npgsql2/src/Npgsql/NpgsqlResultSet.cs)