Join - KimJangHyeon/MyDBMS GitHub Wiki

๊ตฌ์กฐ์ฒด image leafpage ๊ฐ column์— ๋Œ€ํ•˜์—ฌ min, max๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์„ ๋งˆ๋ จํ•˜๊ธฐ ์œ„ํ•ด record 32->30 for(min, max col) ๋กœ leaf์— ์ €์žฅ๊ฐ€๋Šฅํ•œ record์˜ ๊ฐฏ์ˆ˜๋ฅผ 2๊ฐœ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

VIEW์˜ ํŽ˜์ด์ง€

scan_table

  • tid์—์„œ ํ•„์š”ํ•œ col์— ๋Œ€ํ•˜์—ฌ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์ด๋•Œ ๋ฏธ๋ฆฌ ํŽ˜์ด์ง€์—์„œ ์ €์žฅํ•ด ๋†“์€ ํŽ˜์ด์ง€๋ณ„ min, max๋ฅผ ๊ฐ€์ง€๊ณ ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์ธํ•  ํ…Œ์ด๋ธ”์˜ ๋Œ€๋žต์ ์ธ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JoinSet Class

image

parser

  • ๋“ค์–ด์˜จ ์ฟผ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„์–ด join_infos (vector์— ์ €์žฅ
  • ์ด๋•Œ ํŒŒ์‹ฑ์„ ํ•˜๋ฉด์„œ ํ˜„์žฌ๊นŒ์ง€ ๋“ฑ์žฅํ•œ ๋ชจ๋“  tid๊ณผ ์นผ๋Ÿผ์„ ์กฐ์‚ฌํ•˜์—ฌ ์ด์— ํ•ด๋‹นํ•˜๋Š” JoinData๋ฅผ ๋งŒ๋“ฌ

scanner

  • JoinData๋“ค์— ๋Œ€ํ•˜์—ฌ scan_table์„ ์‚ฌ์šฉํ•ด record๋ฅผ ๋ชจ๋‘ ์ฑ„์›€
  • join_ordering: ์ด์ œ join_infos์— ๋Œ€ํ•˜์—ฌ ์–ด๋–ค ์ˆœ์„œ๋กœ joinํ•˜๋Š” ๊ฒƒ catalog๊ฐ€ ์™„์„ฑ ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด์— ๋งž๊ฒŒ join_infos์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝ

JoinTree Class

image image

make_tree

  • JoinSet์˜ join_infos, join_datas๋“ค์„ ๊ฐ€์ง€๊ณ  left most tree๋ฅผ ๋งŒ๋“ ๋‹ค.

join

  • ๊ฐ ๋…ธ๋“œ ๋งˆ๋‹ค join์„ ํ•œ๋‹ค. ์ด๋•Œ, join์ค‘์ธ ๋…ธ๋“œ๋ณด๋‹ค 2๋…ธ๋“œ ์•„๋ž˜์— ์žˆ๋Š” ๋…ธ๋“œ๋Š” free์‹œ์ผœ์ค€๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ