summaryrefslogtreecommitdiff
path: root/doc/FAQ_DEV
diff options
context:
space:
mode:
Diffstat (limited to 'doc/FAQ_DEV')
-rw-r--r--doc/FAQ_DEV13
1 files changed, 13 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.