/ Check-in [7d301fdf]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Work around an optimization issue with the MSVC compiler for ARM.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:7d301fdfeec540e4a58f43bff04d219e9f769dc4
User & Date: mistachkin 2012-10-02 22:54:27
Context
2012-10-03
11:02
Fix the TCL interface so that SQL functions implemented in TCL honor the "nullvalue" setting. Also remove from the TCL interface some unused legacy UTF8 translation code left over from SQLite2. check-in: c1f10a26 user: drh tags: trunk
00:25
Further attempts to optimize out unnecessary ORDER BY clauses. check-in: 6744d9a3 user: drh tags: qp-enhancements
2012-10-02
22:54
Work around an optimization issue with the MSVC compiler for ARM. check-in: 7d301fdf user: mistachkin tags: trunk
15:19
More lenient handling of ORDER BY optimization in joins with mixed ASC/DESC. This is a better and less restrictive fix for the problem addressed by the previous check-in. check-in: abcf6a5d user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/btree.c.

  5936   5936   ** size of a cell stored within an internal node is always less than 1/4
  5937   5937   ** of the page-size, the aOvflSpace[] buffer is guaranteed to be large
  5938   5938   ** enough for all overflow cells.
  5939   5939   **
  5940   5940   ** If aOvflSpace is set to a null pointer, this function returns 
  5941   5941   ** SQLITE_NOMEM.
  5942   5942   */
         5943  +#if defined(_MSC_VER) && _MSC_VER >= 1700 && defined(_M_ARM)
         5944  +#pragma optimize("", off)
         5945  +#endif
  5943   5946   static int balance_nonroot(
  5944   5947     MemPage *pParent,               /* Parent page of siblings being balanced */
  5945   5948     int iParentIdx,                 /* Index of "the page" in pParent */
  5946   5949     u8 *aOvflSpace,                 /* page-size bytes of space for parent ovfl */
  5947   5950     int isRoot,                     /* True if pParent is a root-page */
  5948   5951     int bBulk                       /* True if this call is part of a bulk load */
  5949   5952   ){
................................................................................
  6566   6569     }
  6567   6570     for(i=0; i<nNew; i++){
  6568   6571       releasePage(apNew[i]);
  6569   6572     }
  6570   6573   
  6571   6574     return rc;
  6572   6575   }
         6576  +#if defined(_MSC_VER) && _MSC_VER >= 1700 && defined(_M_ARM)
         6577  +#pragma optimize("", on)
         6578  +#endif
  6573   6579   
  6574   6580   
  6575   6581   /*
  6576   6582   ** This function is called when the root page of a b-tree structure is
  6577   6583   ** overfull (has one or more overflow pages).
  6578   6584   **
  6579   6585   ** A new child page is allocated and the contents of the current root