Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs')
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs26
1 files changed, 13 insertions, 13 deletions
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs
index c2235395409..2428b5e4901 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">Microsoft</owner>
-// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="false">[....]</owner>
//------------------------------------------------------------------------------
using System;
@@ -545,12 +545,12 @@ namespace System.Data.Odbc
// item for GetInt32. This actually improves perf anyway, (even if the driver could
// support it), since we are not making a seperate interop call...
- //
-
-
-
-
-
+ // Bug SQLBUVSTS01:110664 - available cases:
+ // 1. random access - always cache the value (as before the fix), to minimize regression risk
+ // 2. sequential access, fixed-size value: continue caching the value as before, again to minimize regression risk
+ // 3. sequential access, variable-length value: this scenario did not work properly before the fix. Fix
+ // it now by calling GetData(length = 0).
+ // 4. sequential access, cache value exists: just check the cache for DbNull (no validations done, again to minimize regressions)
if (!IsCommandBehavior(CommandBehavior.SequentialAccess))
return Convert.IsDBNull(GetValue(i)); // case 1, cache the value
@@ -1012,7 +1012,7 @@ namespace System.Data.Odbc
if (dataIndex >= cachedObjectLength)
{
// no more bytes to read
- // see also MDAC
+ // see also MDAC bug 73298
return 0;
}
@@ -1021,7 +1021,7 @@ namespace System.Data.Odbc
// silently reduce the length to avoid regression from EVERETT
lengthOfCopy = Math.Min(lengthOfCopy, buffer.Length - bufferIndex);
- if (lengthOfCopy <= 0) return 0; // MDAC
+ if (lengthOfCopy <= 0) return 0; // MDAC Bug 73298
if (isCharsBuffer)
((string)cachedObj).CopyTo((int)dataIndex, (char[])buffer, bufferIndex, lengthOfCopy);
@@ -1944,7 +1944,7 @@ namespace System.Data.Odbc
columns.Add(new DataColumn("BaseTableName", typeof(System.String)));
columns.Add(new DataColumn("BaseColumnName", typeof(System.String)));
- // MDAC
+ // MDAC Bug 79231
foreach (DataColumn column in columns) {
column.ReadOnly = true;
}
@@ -2197,8 +2197,8 @@ namespace System.Data.Odbc
// devnote: this test is already done by calling method ...
// if (IsClosed) return; // protect against dead connection
- // MDAC
-
+ // MDAC Bug 75928 - SQLStatisticsW damages the string passed in
+ // To protect the tablename we need to pass in a copy of that string
String tablename1 = String.Copy(qualifiedTableName.GetTable(quoted));
// Select only unique indexes