<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On Aug 29, 2007, at 18:30, Mohammad J wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">> It can't be done, at least not in a precise way. There is no way to<BR>> know exactly which data a SQL statement will affect without actually<BR>> being able to fully execute the statement the same way your database<SPAN class="Apple-converted-space"> </SPAN><BR>> would, at which point all the speed advantage is gone.<BR><BR>You are correct that one of the limitations of any analysis program is that unless it does full SQL parsing, there is no way to be sure your system isn't placed in an inconsistent state. However, in my application, updates are only performed using the primary key of the tables being updated (for performance reasons). This is true in all cases in my application, and thus it was relatively simple to write an analysis application that identified all queries that make updates.<SPAN class="Apple-converted-space"> </SPAN><BR></SPAN></BLOCKQUOTE></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>pgmemcache will allow you to send invalidations for any touches a given row in a table iff you know the memcached keys that need to be invalidated.</DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>-- </DIV><DIV>Dustin Sallings</DIV><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></BODY></HTML>