diff options
-rw-r--r-- | doc/FAQ_DEV | 13 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_DEV.html | 13 |
2 files changed, 26 insertions, 0 deletions
diff --git a/doc/FAQ_DEV b/doc/FAQ_DEV index 31b27ee73ec..5f9f0788348 100644 --- a/doc/FAQ_DEV +++ b/doc/FAQ_DEV @@ -26,6 +26,7 @@ 10) What is elog()? 11) What is configure all about? 12) How do I add a new port? + 13) What is CommandCounterIncrement()? _________________________________________________________________ 1) What tools are available for developers? @@ -414,3 +415,15 @@ c-mode) src/include/storage/s_lock.h for your CPU. There is also a src/makefiles directory for port-specific Makefile handling. There is a backend/port directory if you need special files for your OS. + + 13) What is CommandCounterIncrement()? + + Normally, transactions can not see the rows they modify. This allows + UPDATE foo SET x = x + 1 to work correctly. + + However, there are cases where a transactions needs to see rows + affected in previous parts of the transaction. This is accomplished + using a Command Counter. Incrementing the counter allows transactions + to be broken into pieces so each piece can see rows modified by + previous pieces. CommandCounterIncrement() increments the Command + Counter, creating a new piece of the transaction. diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index ba60c157c21..4da26a9d3a2 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -38,6 +38,7 @@ tables from the backend code?<BR> <a href="#10">10</a>) What is elog()?<BR> <a href="#11">11</a>) What is configure all about?<BR> <a href="#12">12</a>) How do I add a new port?<BR> +<a href="#13">13</a>) What is CommandCounterIncrement()?<BR> <BR> <HR> @@ -481,6 +482,18 @@ appropriate values. Hopefully, there is already locking code in There is a <I>backend/port</I> directory if you need special files for your OS.<P> +<H3><a name="13">13</a>) What is CommandCounterIncrement()?</H3><P> + +Normally, transactions can not see the rows they modify. This allows <CODE> +UPDATE foo SET x = x + 1</CODE> to work correctly. +<P> + +However, there are cases where a transactions needs to see rows affected +in previous parts of the transaction. This is accomplished using a +Command Counter. Incrementing the counter allows transactions to be +broken into pieces so each piece can see rows modified by previous +pieces. <I>CommandCounterIncrement()</I> increments the Command +Counter, creating a new piece of the transaction. <P> </BODY> </HTML> |