Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When reading a DateTime value, avoid unnecessary string conversions. Fix for [4d87fbc742]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e1b4194a301f8aee3f7b86bf94745e96 |
User & Date: | mistachkin 2013-06-28 06:47:37.309 |
Context
2013-07-01
| ||
10:16 | Allow virtual tables implemented in managed code to implement functions. check-in: 3e1da60858 user: mistachkin tags: trunk | |
2013-06-28
| ||
06:47 | When reading a DateTime value, avoid unnecessary string conversions. Fix for [4d87fbc742]. check-in: e1b4194a30 user: mistachkin tags: trunk | |
2013-06-27
| ||
09:17 | By default, throw an InvalidOperationException if the SQLiteVirtualTableCursorEnumerator cursor has been closed. check-in: 61ed48703c user: mistachkin tags: trunk | |
Changes
Changes to Doc/Extra/version.html.
︙ | ︙ | |||
44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.87.0 - June XX, 2013 <font color="red">(release scheduled)</font></b></p> <ul> <li>Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for <a href="http://system.data.sqlite.org/index.html/info/9a544991be">[9a544991be]</a>.</li> <li>The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for <a href="http://system.data.sqlite.org/index.html/info/47f4bac575">[47f4bac575]</a>.</li> <li>Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.</li> <li>Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for <a href="http://system.data.sqlite.org/index.html/info/f2c47a01eb">[f2c47a01eb]</a>.</li> <li>Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/bbdda6eae2">[bbdda6eae2]</a>.</li> <li>Rename the ReturnCode property of the SQLiteException class to ResultCode. <b>** Potentially Incompatible Change **</b></li> </ul> <p><b>1.0.86.0 - May 23, 2013</b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_7_17.html">SQLite 3.7.17</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.87.0 - June XX, 2013 <font color="red">(release scheduled)</font></b></p> <ul> <li>Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for <a href="http://system.data.sqlite.org/index.html/info/9a544991be">[9a544991be]</a>.</li> <li>The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for <a href="http://system.data.sqlite.org/index.html/info/47f4bac575">[47f4bac575]</a>.</li> <li>Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.</li> <li>When reading a DateTime value, avoid unnecessary string conversions. Fix for <a href="http://system.data.sqlite.org/index.html/info/4d87fbc742">[4d87fbc742]</a>.</li> <li>Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for <a href="http://system.data.sqlite.org/index.html/info/f2c47a01eb">[f2c47a01eb]</a>.</li> <li>Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/bbdda6eae2">[bbdda6eae2]</a>.</li> <li>Rename the ReturnCode property of the SQLiteException class to ResultCode. <b>** Potentially Incompatible Change **</b></li> </ul> <p><b>1.0.86.0 - May 23, 2013</b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/releaselog/3_7_17.html">SQLite 3.7.17</a>.</li> |
︙ | ︙ |
Changes to System.Data.SQLite/SQLite3.cs.
︙ | ︙ | |||
1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 | return UTF8ToString(UnsafeNativeMethods.sqlite3_column_text(stmt._sqlite_stmt, index), UnsafeNativeMethods.sqlite3_column_bytes(stmt._sqlite_stmt, index)); #endif } internal override DateTime GetDateTime(SQLiteStatement stmt, int index) { #if !SQLITE_STANDARD int len; return ToDateTime(UnsafeNativeMethods.sqlite3_column_text_interop(stmt._sqlite_stmt, index, out len), len); #else return ToDateTime(UnsafeNativeMethods.sqlite3_column_text(stmt._sqlite_stmt, index), UnsafeNativeMethods.sqlite3_column_bytes(stmt._sqlite_stmt, index)); #endif | > > > > > > > | 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 | return UTF8ToString(UnsafeNativeMethods.sqlite3_column_text(stmt._sqlite_stmt, index), UnsafeNativeMethods.sqlite3_column_bytes(stmt._sqlite_stmt, index)); #endif } internal override DateTime GetDateTime(SQLiteStatement stmt, int index) { if (_datetimeFormat == SQLiteDateFormats.Ticks) return ToDateTime(GetInt64(stmt, index), _datetimeKind); else if (_datetimeFormat == SQLiteDateFormats.JulianDay) return ToDateTime(GetDouble(stmt, index), _datetimeKind); else if (_datetimeFormat == SQLiteDateFormats.UnixEpoch) return ToDateTime(GetInt32(stmt, index), _datetimeKind); #if !SQLITE_STANDARD int len; return ToDateTime(UnsafeNativeMethods.sqlite3_column_text_interop(stmt._sqlite_stmt, index, out len), len); #else return ToDateTime(UnsafeNativeMethods.sqlite3_column_text(stmt._sqlite_stmt, index), UnsafeNativeMethods.sqlite3_column_bytes(stmt._sqlite_stmt, index)); #endif |
︙ | ︙ |
Changes to System.Data.SQLite/SQLite3_UTF16.cs.
︙ | ︙ | |||
240 241 242 243 244 245 246 247 248 249 250 251 252 253 | SQLiteErrorCode n = UnsafeNativeMethods.sqlite3_bind_text16(handle, index, value, value.Length * 2, (IntPtr)(-1)); if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, GetLastError()); } internal override DateTime GetDateTime(SQLiteStatement stmt, int index) { return ToDateTime(GetText(stmt, index)); } internal override string ColumnName(SQLiteStatement stmt, int index) { #if !SQLITE_STANDARD int len; | > > > > > > > | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 | SQLiteErrorCode n = UnsafeNativeMethods.sqlite3_bind_text16(handle, index, value, value.Length * 2, (IntPtr)(-1)); if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, GetLastError()); } internal override DateTime GetDateTime(SQLiteStatement stmt, int index) { if (_datetimeFormat == SQLiteDateFormats.Ticks) return ToDateTime(GetInt64(stmt, index), _datetimeKind); else if (_datetimeFormat == SQLiteDateFormats.JulianDay) return ToDateTime(GetDouble(stmt, index), _datetimeKind); else if (_datetimeFormat == SQLiteDateFormats.UnixEpoch) return ToDateTime(GetInt32(stmt, index), _datetimeKind); return ToDateTime(GetText(stmt, index)); } internal override string ColumnName(SQLiteStatement stmt, int index) { #if !SQLITE_STANDARD int len; |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | ︙ | |||
305 306 307 308 309 310 311 | string formatString ) { switch (format) { case SQLiteDateFormats.Ticks: { | | < | | | 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 | string formatString ) { switch (format) { case SQLiteDateFormats.Ticks: { return ToDateTime(Convert.ToInt64( dateText, CultureInfo.InvariantCulture), kind); } case SQLiteDateFormats.JulianDay: { return ToDateTime(Convert.ToDouble( dateText, CultureInfo.InvariantCulture), kind); } case SQLiteDateFormats.UnixEpoch: { return ToDateTime(Convert.ToInt32( dateText, CultureInfo.InvariantCulture), kind); } case SQLiteDateFormats.InvariantCulture: { if (formatString != null) return DateTime.SpecifyKind(DateTime.ParseExact( dateText, formatString, DateTimeFormatInfo.InvariantInfo, |
︙ | ︙ | |||
398 399 400 401 402 403 404 405 406 407 408 409 410 411 | /// <param name="kind">The DateTimeKind to use.</param> /// <returns>A .NET DateTime</returns> public static DateTime ToDateTime(double julianDay, DateTimeKind kind) { return DateTime.SpecifyKind( DateTime.FromOADate(julianDay - OleAutomationEpochAsJulianDay), kind); } /// <summary> /// Converts a DateTime struct to a JulianDay double /// </summary> /// <param name="value">The DateTime to convert</param> /// <returns>The JulianDay value the Datetime represents</returns> public static double ToJulianDay(DateTime value) | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | /// <param name="kind">The DateTimeKind to use.</param> /// <returns>A .NET DateTime</returns> public static DateTime ToDateTime(double julianDay, DateTimeKind kind) { return DateTime.SpecifyKind( DateTime.FromOADate(julianDay - OleAutomationEpochAsJulianDay), kind); } /// <summary> /// Converts the specified number of seconds from the Unix epoch into a /// <see cref="DateTime" /> value. /// </summary> /// <param name="seconds"> /// The number of whole seconds since the Unix epoch. /// </param> /// <param name="kind"> /// Either Utc or Local time. /// </param> /// <returns> /// The new <see cref="DateTime" /> value. /// </returns> internal static DateTime ToDateTime(int seconds, DateTimeKind kind) { return DateTime.SpecifyKind(UnixEpoch.AddSeconds(seconds), kind); } /// <summary> /// Converts the specified number of ticks since the epoch into a /// <see cref="DateTime" /> value. /// </summary> /// <param name="ticks"> /// The number of whole ticks since the epoch. /// </param> /// <param name="kind"> /// Either Utc or Local time. /// </param> /// <returns> /// The new <see cref="DateTime" /> value. /// </returns> internal static DateTime ToDateTime(long ticks, DateTimeKind kind) { return new DateTime(ticks, kind); } /// <summary> /// Converts a DateTime struct to a JulianDay double /// </summary> /// <param name="value">The DateTime to convert</param> /// <returns>The JulianDay value the Datetime represents</returns> public static double ToJulianDay(DateTime value) |
︙ | ︙ | |||
486 487 488 489 490 491 492 | /// <param name="ptr">A pointer to the UTF-8 encoded string</param> /// <param name="len">The length in bytes of the string</param> /// <returns>The parsed DateTime value</returns> internal DateTime ToDateTime(IntPtr ptr, int len) { return ToDateTime(ToString(ptr, len)); } | < | 521 522 523 524 525 526 527 528 529 530 531 532 533 534 | /// <param name="ptr">A pointer to the UTF-8 encoded string</param> /// <param name="len">The length in bytes of the string</param> /// <returns>The parsed DateTime value</returns> internal DateTime ToDateTime(IntPtr ptr, int len) { return ToDateTime(ToString(ptr, len)); } #endregion /// <summary> /// Smart method of splitting a string. Skips quoted elements, removes the quotes. /// </summary> /// <remarks> /// This split function works somewhat like the String.Split() function in that it breaks apart a string into |
︙ | ︙ |
Changes to readme.htm.
︙ | ︙ | |||
189 190 191 192 193 194 195 196 197 198 199 200 201 202 | <p> <b>1.0.87.0 - June XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for [9a544991be].</li> <li>The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for [47f4bac575].</li> <li>Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.</li> <li>Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for [f2c47a01eb].</li> <li>Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to [bbdda6eae2].</li> <li>Rename the ReturnCode property of the SQLiteException class to ResultCode. <b>** Potentially Incompatible Change **</b></li> </ul> <p> <b>1.0.86.0 - May 23, 2013</b> </p> | > | 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | <p> <b>1.0.87.0 - June XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for [9a544991be].</li> <li>The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for [47f4bac575].</li> <li>Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.</li> <li>When reading a DateTime value, avoid unnecessary string conversions. Fix for [4d87fbc742].</li> <li>Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for [f2c47a01eb].</li> <li>Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to [bbdda6eae2].</li> <li>Rename the ReturnCode property of the SQLiteException class to ResultCode. <b>** Potentially Incompatible Change **</b></li> </ul> <p> <b>1.0.86.0 - May 23, 2013</b> </p> |
︙ | ︙ |
Changes to www/news.wiki.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <title>News</title> <b>Version History</b> <p> <b>1.0.87.0 - June XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for [9a544991be].</li> <li>The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for [47f4bac575].</li> <li>Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.</li> <li>Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for [f2c47a01eb].</li> <li>Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to [bbdda6eae2].</li> <li>Rename the ReturnCode property of the SQLiteException class to ResultCode. <b>** Potentially Incompatible Change **</b></li> </ul> <p> <b>1.0.86.0 - May 23, 2013</b> </p> | > | 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.87.0 - June XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for [9a544991be].</li> <li>The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for [47f4bac575].</li> <li>Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.</li> <li>When reading a DateTime value, avoid unnecessary string conversions. Fix for [4d87fbc742].</li> <li>Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for [f2c47a01eb].</li> <li>Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to [bbdda6eae2].</li> <li>Rename the ReturnCode property of the SQLiteException class to ResultCode. <b>** Potentially Incompatible Change **</b></li> </ul> <p> <b>1.0.86.0 - May 23, 2013</b> </p> |
︙ | ︙ |