Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add DetectStringType connection flag. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | tkt-3c00ec5b52 |
Files: | files | file ages | folders |
SHA1: |
229927cfcebec0246fd554f50a78a755 |
User & Date: | mistachkin 2014-05-27 05:56:06 |
Context
2014-05-27
| ||
18:35 | Merge updates from trunk. Closed-Leaf check-in: b48e7cb883 user: mistachkin tags: tkt-3c00ec5b52 | |
05:56 | Add DetectStringType connection flag. check-in: 229927cfce user: mistachkin tags: tkt-3c00ec5b52 | |
05:34 | Merge updates from trunk. check-in: e7d0d8c183 user: mistachkin tags: tkt-3c00ec5b52 | |
Changes
Changes to Doc/Extra/Provider/version.html.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.93.0 - June XX, 2014 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_8_4_3.html">SQLite 3.8.4.3</a>.</li> <li>Add support for mapping transaction isolation levels to their legacy default values. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/56b42d99c1">[56b42d99c1]</a>.</li> <li>Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/3c00ec5b52">[3c00ec5b52]</a>.</li> <li>Add DetectTextAffinity connection flag to enable automatic detection of column affinities, when necessary. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/3c00ec5b52">[3c00ec5b52]</a>.</li> <li>Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].</li> <li>Make the ISQLiteSchemaExtensions interface public. <b>** Potentially Incompatible Change **</b></li> <li>Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.</li> <li>Fix bug in documentation generator automation that prevented some internal documentation links from working.</li> </ul> <p><b>1.0.92.0 - March 19, 2014</p> <ul> |
| |
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.93.0 - June XX, 2014 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_8_4_3.html">SQLite 3.8.4.3</a>.</li> <li>Add support for mapping transaction isolation levels to their legacy default values. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/56b42d99c1">[56b42d99c1]</a>.</li> <li>Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/3c00ec5b52">[3c00ec5b52]</a>.</li> <li>Add DetectTextAffinity and DetectStringType connection flags to enable automatic detection of column types, when necessary. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/3c00ec5b52">[3c00ec5b52]</a>.</li> <li>Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].</li> <li>Make the ISQLiteSchemaExtensions interface public. <b>** Potentially Incompatible Change **</b></li> <li>Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.</li> <li>Fix bug in documentation generator automation that prevented some internal documentation links from working.</li> </ul> <p><b>1.0.92.0 - March 19, 2014</p> <ul> |
Changes to System.Data.SQLite/SQLiteBase.cs.
1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 |
/// Enable mapping of unsupported transaction isolation levels to the
/// closest supported transaction isolation level.
/// </summary>
MapIsolationLevels = 0x1000000,
/// <summary>
/// When returning column values, attempt to detect the affinity of
/// textual values to see if they fully conform to those of the
/// <see cref="TypeAffinity.Null" />,
/// <see cref="TypeAffinity.Int64" />,
/// <see cref="TypeAffinity.Double" />,
/// or <see cref="TypeAffinity.DateTime" /> types.
/// </summary>
DetectTextAffinity = 0x2000000,
/// <summary>
/// When binding parameter values or returning column values, always
/// treat them as though they were plain text (i.e. no numeric,
/// date/time, or other conversions should be attempted).
/// </summary>
BindAndGetAllAsText = BindAllAsText | GetAllAsText,
|
| > > > > > > > > > > |
1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 |
/// Enable mapping of unsupported transaction isolation levels to the /// closest supported transaction isolation level. /// </summary> MapIsolationLevels = 0x1000000, /// <summary> /// When returning column values, attempt to detect the affinity of /// textual values by checking if they fully conform to those of the /// <see cref="TypeAffinity.Null" />, /// <see cref="TypeAffinity.Int64" />, /// <see cref="TypeAffinity.Double" />, /// or <see cref="TypeAffinity.DateTime" /> types. /// </summary> DetectTextAffinity = 0x2000000, /// <summary> /// When returning column values, attempt to detect the type of /// string values by checking if they fully conform to those of /// the <see cref="TypeAffinity.Null" />, /// <see cref="TypeAffinity.Int64" />, /// <see cref="TypeAffinity.Double" />, /// or <see cref="TypeAffinity.DateTime" /> types. /// </summary> DetectStringType = 0x4000000, /// <summary> /// When binding parameter values or returning column values, always /// treat them as though they were plain text (i.e. no numeric, /// date/time, or other conversions should be attempted). /// </summary> BindAndGetAllAsText = BindAllAsText | GetAllAsText, |
Changes to System.Data.SQLite/SQLiteConvert.cs.
1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 |
new SQLiteDbTypeMapping("UNSIGNEDINTEGER64", DbType.UInt64, false), new SQLiteDbTypeMapping("VARBINARY", DbType.Binary, false), new SQLiteDbTypeMapping("VARCHAR", DbType.AnsiString, true), new SQLiteDbTypeMapping("VARCHAR2", DbType.AnsiString, false), new SQLiteDbTypeMapping("YESNO", DbType.Boolean, false) }); } /// <summary> /// Determines the default <see cref="DbType" /> value to be used when a /// per-connection value is not available. /// </summary> /// <returns> /// The default <see cref="DbType" /> value to use. |
> > > > > > > > > > > > > > > > > > > > > > > > > > |
1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 |
new SQLiteDbTypeMapping("UNSIGNEDINTEGER64", DbType.UInt64, false), new SQLiteDbTypeMapping("VARBINARY", DbType.Binary, false), new SQLiteDbTypeMapping("VARCHAR", DbType.AnsiString, true), new SQLiteDbTypeMapping("VARCHAR2", DbType.AnsiString, false), new SQLiteDbTypeMapping("YESNO", DbType.Boolean, false) }); } /// <summary> /// Determines if a database type is considered to be a string. /// </summary> /// <param name="type"> /// The database type to check. /// </param> /// <returns> /// Non-zero if the database type is considered to be a string, zero /// otherwise. /// </returns> internal static bool IsStringDbType( DbType type ) { switch (type) { case DbType.AnsiString: case DbType.String: case DbType.AnsiStringFixedLength: case DbType.StringFixedLength: return true; default: return false; } } /// <summary> /// Determines the default <see cref="DbType" /> value to be used when a /// per-connection value is not available. /// </summary> /// <returns> /// The default <see cref="DbType" /> value to use. |
Changes to System.Data.SQLite/SQLiteDataReader.cs.
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
....
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
|
if (arSize.Length > 1) { dataType = arSize[0]; arSize = arSize[1].Split(')'); if (arSize.Length > 1) { arSize = arSize[0].Split(',', '.'); if (sqlType.Type == DbType.AnsiString || sqlType.Type == DbType.Binary || sqlType.Type == DbType.String || sqlType.Type == DbType.AnsiStringFixedLength || sqlType.Type == DbType.StringFixedLength) { row[SchemaTableColumn.ColumnSize] = Convert.ToInt32(arSize[0], CultureInfo.InvariantCulture); } else { row[SchemaTableColumn.NumericPrecision] = Convert.ToInt32(arSize[0], CultureInfo.InvariantCulture); if (arSize.Length > 1) ................................................................................ SQLiteConnectionFlags flags = SQLiteCommand.GetFlags(_command); SQLiteType typ = GetSQLiteType(flags, i); if (((flags & SQLiteConnectionFlags.DetectTextAffinity) == SQLiteConnectionFlags.DetectTextAffinity) && ((typ == null) || (typ.Affinity == TypeAffinity.Text))) { typ = GetSQLiteType( typ, _activeStatement._sql.GetText(_activeStatement, i)); } return _activeStatement._sql.GetValue(_activeStatement, flags, i, typ); } |
|
<
<
>
>
>
>
>
>
|
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
....
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
|
if (arSize.Length > 1) { dataType = arSize[0]; arSize = arSize[1].Split(')'); if (arSize.Length > 1) { arSize = arSize[0].Split(',', '.'); if (sqlType.Type == DbType.Binary || SQLiteConvert.IsStringDbType(sqlType.Type)) { row[SchemaTableColumn.ColumnSize] = Convert.ToInt32(arSize[0], CultureInfo.InvariantCulture); } else { row[SchemaTableColumn.NumericPrecision] = Convert.ToInt32(arSize[0], CultureInfo.InvariantCulture); if (arSize.Length > 1) ................................................................................ SQLiteConnectionFlags flags = SQLiteCommand.GetFlags(_command); SQLiteType typ = GetSQLiteType(flags, i); if (((flags & SQLiteConnectionFlags.DetectTextAffinity) == SQLiteConnectionFlags.DetectTextAffinity) && ((typ == null) || (typ.Affinity == TypeAffinity.Text))) { typ = GetSQLiteType( typ, _activeStatement._sql.GetText(_activeStatement, i)); } else if (((flags & SQLiteConnectionFlags.DetectStringType) == SQLiteConnectionFlags.DetectStringType) && ((typ == null) || SQLiteConvert.IsStringDbType(typ.Type))) { typ = GetSQLiteType( typ, _activeStatement._sql.GetText(_activeStatement, i)); } return _activeStatement._sql.GetValue(_activeStatement, flags, i, typ); } |
Changes to readme.htm.
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 |
<p> <b>1.0.93.0 - June XX, 2014 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_8_4_3.html">SQLite 3.8.4.3</a>.</li> <li>Add support for mapping transaction isolation levels to their legacy default values. Pursuant to [56b42d99c1].</li> <li>Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to [3c00ec5b52].</li> <li>Add DetectTextAffinity connection flag to enable automatic detection of column affinities, when necessary. Pursuant to [3c00ec5b52].</li> <li>Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].</li> <li>Make the ISQLiteSchemaExtensions interface public. <b>** Potentially Incompatible Change **</b></li> <li>Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.</li> <li>Fix bug in documentation generator automation that prevented some internal documentation links from working.</li> </ul> <p> <b>1.0.92.0 - March 19, 2014</b> |
| |
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 |
<p> <b>1.0.93.0 - June XX, 2014 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_8_4_3.html">SQLite 3.8.4.3</a>.</li> <li>Add support for mapping transaction isolation levels to their legacy default values. Pursuant to [56b42d99c1].</li> <li>Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to [3c00ec5b52].</li> <li>Add DetectTextAffinity and DetectStringType connection flags to enable automatic detection of column types, when necessary. Pursuant to [3c00ec5b52].</li> <li>Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].</li> <li>Make the ISQLiteSchemaExtensions interface public. <b>** Potentially Incompatible Change **</b></li> <li>Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.</li> <li>Fix bug in documentation generator automation that prevented some internal documentation links from working.</li> </ul> <p> <b>1.0.92.0 - March 19, 2014</b> |
Changes to www/news.wiki.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<p> <b>1.0.93.0 - June XX, 2014 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_8_4_3.html">SQLite 3.8.4.3</a>.</li> <li>Add support for mapping transaction isolation levels to their legacy default values. Pursuant to [56b42d99c1].</li> <li>Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to [3c00ec5b52].</li> <li>Add DetectTextAffinity connection flag to enable automatic detection of column affinities, when necessary. Pursuant to [3c00ec5b52].</li> <li>Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].</li> <li>Make the ISQLiteSchemaExtensions interface public. <b>** Potentially Incompatible Change **</b></li> <li>Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.</li> <li>Fix bug in documentation generator automation that prevented some internal documentation links from working.</li> </ul> <p> <b>1.0.92.0 - March 19, 2014</b> |
| |
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<p> <b>1.0.93.0 - June XX, 2014 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_8_4_3.html">SQLite 3.8.4.3</a>.</li> <li>Add support for mapping transaction isolation levels to their legacy default values. Pursuant to [56b42d99c1].</li> <li>Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to [3c00ec5b52].</li> <li>Add DetectTextAffinity and DetectStringType connection flags to enable automatic detection of column types, when necessary. Pursuant to [3c00ec5b52].</li> <li>Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].</li> <li>Make the ISQLiteSchemaExtensions interface public. <b>** Potentially Incompatible Change **</b></li> <li>Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.</li> <li>Fix bug in documentation generator automation that prevented some internal documentation links from working.</li> </ul> <p> <b>1.0.92.0 - March 19, 2014</b> |