<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre, #msg p { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[28543] trunk/WebCore</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/28543">28543</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2007-12-07 16:05:07 -0800 (Fri, 07 Dec 2007)</dd>
</dl>

<h3>Log Message</h3>
<pre>        Reviewed by Anders and Darin

        When a statement bumps up against the quota and the UI Delegate grants more space, we need to
        actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
        in the DatabaseTracker, which was already done)

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
          the SQLiteDatabase to the new maximum size</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCorestorageSQLTransactioncpp">trunk/WebCore/storage/SQLTransaction.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (28542 => 28543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2007-12-08 00:02:56 UTC (rev 28542)
+++ trunk/WebCore/ChangeLog        2007-12-08 00:05:07 UTC (rev 28543)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2007-12-07  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Reviewed by Anders and Darin
+
+        When a statement bumps up against the quota and the UI Delegate grants more space, we need to
+        actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
+        in the DatabaseTracker, which was already done)
+
+        * storage/SQLTransaction.cpp:
+        (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
+          the SQLiteDatabase to the new maximum size
+
</ins><span class="cx"> 2007-12-07  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         - fix Tiger build
</span></span></pre></div>
<a id="trunkWebCorestorageSQLTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/storage/SQLTransaction.cpp (28542 => 28543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/storage/SQLTransaction.cpp        2007-12-08 00:02:56 UTC (rev 28542)
+++ trunk/WebCore/storage/SQLTransaction.cpp        2007-12-08 00:05:07 UTC (rev 28543)
</span><span class="lines">@@ -182,9 +182,14 @@
</span><span class="cx">     // If there is a series of statements queued up that are all successful and have no associated
</span><span class="cx">     // SQLStatementCallback objects, then we can burn through the queue
</span><span class="cx">     do {
</span><del>-        if (m_shouldRetryCurrentStatement) 
</del><ins>+        if (m_shouldRetryCurrentStatement) {
</ins><span class="cx">             m_shouldRetryCurrentStatement = false;
</span><del>-        else {
</del><ins>+            // FIXME - Another place that needs fixing up after &lt;rdar://problem/5628468&gt; is addressed.
+            // See ::openTransactionAndPreflight() for discussion
+            
+            // Reset the maximum size here, as it was increased to allow us to retry this statement
+            m_database-&gt;m_sqliteDatabase.setMaximumSize(DatabaseTracker::tracker().quotaForOrigin(m_database-&gt;securityOriginData()));
+        } else {
</ins><span class="cx">             // If the current statement has already been run, failed due to quota constraints, and we're not retrying it,
</span><span class="cx">             // that means it ended in an error.  Handle it now
</span><span class="cx">             if (m_currentStatement &amp;&amp; m_currentStatement-&gt;lastExecutionFailedDueToQuota()) {
</span></span></pre>
</div>
</div>

</body>
</html>