vi src/backend/executor/execTuples.c +942
Overview §
Line Ref §
- L945-L954: 만약
TTS_FLAG_SHOULDFREE
라면, 인자로 받아 결과물을 담아 caller 에게 전달해줄 slot
을 비우는 작업을 한다.
- L949-L950:
slot
의 buffer 는 unpin 되어 있어야 한다. 지금은 안쓰는 buffer 이기 때문.
- L952-L953: Tuple 을 free 해주고
TTS_FLAG_SHOULDFREE
flag 를 꺼준다.
- L956-L960: 인자로 받은 값들을 이용해
slot
의 값들을 채워준다.
- L962-L990:
slot
의 buffer 와 새로 읽어온 buffer 가 같은지 다른지 확인해 그에 맞는 처리를 해준다.
- L975-L976: 만약 다른데
slot
의 buffer 가 valid 하다면, 그놈을 unpin 해준다.
- L978: 그리고
slot
의 buffer 를 새로 읽어온 buffer 로 해준 뒤
- L980-L981: Pinning 을 해준다.
- L989: 만약 같다면, caller 가 다시 pinning 해주는게 더 좋다고 한다. 그래서 일단 여기서는 unpinning 한다.