- Notifications
You must be signed in to change notification settings - Fork5
Commitf97aebd
committed
Revise TupleTableSlot code to avoid unnecessary construction and disassembly
of tuples when passing data up through multiple plan nodes. A slot can nowhold either a normal "physical" HeapTuple, or a "virtual" tuple consistingof Datum/isnull arrays. Upper plan levels can usually just copy the Datumarrays, avoiding heap_formtuple() and possible subsequent nocachegetattr()calls to extract the data again. This work extends Atsushi Ogawa's earlierpatch, which provided the key idea of adding Datum arrays to TupleTableSlots.(I believe however that something like this was foreseen way back in Berkeleydays --- see the old comment on ExecProject.) A test case involving manylevels of join of fairly wide tables (about 80 columns altogether) showedabout 3x overall speedup, though simple queries will probably not behelped very much.I have also duplicated some code in heaptuple.c in order to provide versionsof heap_formtuple and friends that use "bool" arrays to indicate nullattributes, instead of the old convention of "char" arrays containing either'n' or ' '. This provides a better match to the convention used byExecEvalExpr. While I have not made a concerted effort to get rid of usesof the old routines, I think they should be deprecated and eventually removed.1 parent712f053 commitf97aebd
File tree
44 files changed
+1764
-932
lines changed- doc/src/sgml
- src
- backend
- access/common
- catalog
- commands
- executor
- nodes
- tcop
- include
- access
- catalog
- executor
- nodes
- tcop
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
44 files changed
+1764
-932
lines changedLines changed: 4 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
2 |
| - | |
| 2 | + | |
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
| |||
2219 | 2219 |
| |
2220 | 2220 |
| |
2221 | 2221 |
| |
2222 |
| - | |
| 2222 | + | |
2223 | 2223 |
| |
2224 | 2224 |
| |
2225 | 2225 |
| |
| |||
2264 | 2264 |
| |
2265 | 2265 |
| |
2266 | 2266 |
| |
2267 |
| - | |
| 2267 | + | |
2268 | 2268 |
| |
2269 | 2269 |
| |
2270 | 2270 |
| |
| |||
2383 | 2383 |
| |
2384 | 2384 |
| |
2385 | 2385 |
| |
2386 |
| - | |
| 2386 | + | |
2387 | 2387 |
| |
2388 | 2388 |
| |
2389 | 2389 |
| |
|
0 commit comments
Comments
(0)