Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add DetectStringType connection flag. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | tkt-3c00ec5b52 |
Files: | files | file ages | folders |
SHA1: |
229927cfcebec0246fd554f50a78a755 |
User & Date: | mistachkin 2014-05-27 05:56:06.954 |
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 | <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> | | | 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 | /// 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 | | > > > > > > > > > > | 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 | if (arSize.Length > 1) { dataType = arSize[0]; arSize = arSize[1].Split(')'); if (arSize.Length > 1) { arSize = arSize[0].Split(',', '.'); | | < < | 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 | 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) |
︙ | ︙ | |||
1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 | 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); } | > > > > > > | 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 | 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 | <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> | | | 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.
1 2 3 4 5 6 7 8 9 10 11 | <title>News</title> <b>Version History</b> <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> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <title>News</title> <b>Version History</b> <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> |
︙ | ︙ |