<aside> <img src="/icons/checkmark_lightgray.svg" alt="/icons/checkmark_lightgray.svg" width="40px" /> ๊ธฐ๊ฐ
Challenges
2021. 08. 07. - 2021. 08. 31.
Masters
2021.09. 06. - 2021. 11. 19.
</aside>
โถ๏ธ ํ๋ก์ ํธ๋ช : GlueSql
โถ๏ธ ๊ธฐ์ฌ ํ๋ก์ ํธ ์ค๋ช
gluesql
: rust ์ด์ฉ, DBMS๋ฅผ ๊ตฌ์ถํ๋๋ฐ ๋๋ cost๋ฅผ ๋ฎ์ถ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฝ๊ฒ ๋ง๋ค์ด ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ๋ rust library์
๋๋ค. ๋ด์ฅํ db, web db๋ฑ์ crate import๋ก ๊ฐ๋จํ ๊ฐ์ ธ์ ๋ง๋ค ์ ์์ต๋๋ค.
sqlparser-rs
: ์ฃผ์ด์ง sql๋ฌธ์ parsing ํ tokenizeํ์ฌ ๊ตฌ์กฐํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋๋ก rust๋ก ๋ง๋ค์ด์ง lexer, parser์
๋๋ค. GlueSql์์ ํด๋น crate๋ฅผ importํด parser๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
โถ๏ธ ํ๋ก์ ํธ ํ๋ ๋ด์ฉ
Challenges
2021. 8. 7. - 2021. 8. 31.
Masters
2021. 9. 6. - 2021. 11. 19.
๊ธฐ๋ฅ์ถ๊ฐ
#265
Sql function REVERSE
๊ธฐ๋ฅ ์ถ๊ฐ (2021.08.07 ~ 2021.08.26)
rust์ ๋ฌธ๋ฒ์ rust book์ ํตํด ๋ฐฐ์ฐ๋ฉฐ ๋์์ project์ code๋ฅผ ์ฝ์์ต๋๋ค. ๋ฌธ๋ฒ์ ๊ธฐ์กด์ ๋ฐฐ์ฐ๊ณ 5๋
๊ฐ ์ฌ์ฉํ์๋ c++์ธ์ด์ ํก์ฌํ ์ ์ด ์์ด ์ ์ฒด์ ์ธ ๊ตฌ์กฐ์ ์ค๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ด๋ณผ ์ ์์์ต๋๋ค. Project์ ๊ฒฝ์ฐ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌ๋์ด ์๊ณ ๊ตฌํ๋์ด ์์๋ folder, file์ ํตํด REVERSE
ํจ์๋ฅผ ๊ฐ๋จํ๊ฒ ์ถ๊ฐํด ๋ณผ ์ ์์์ต๋๋ค. ํ์ง๋ง ์ ์ฒด์ ์ธ sql๋ฌธ๋ค์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ํ์ฌ๋ก์จ๋ table๊ณผ column์ด ๋ง๋ค์ด์ง ์ํ์ ๋ํด์๋ง ๋์ํ๊ธฐ ๋๋ฌธ์ column๋ช
์ ํจ์์ parameter๋ก ๋๊ฒจ ๋ฌธ์์ด์ ๋ค์ง์ด ๋ฐํํ๋ ์ ํ์ ์ธ ๊ธฐ๋ฅ๋ง์ ๋ง๋ค๊ฒ ๋์์ต๋๋ค. ๊ธฐ๋ฅ ๊ตฌํ ํ ๊ฒ์ฆ์ ์ํด integration test๋ฅผ ์์ฑํด ์ถ๊ฐํ์ต๋๋ค.
XOR๋ฅผ parser์ ์ถ๊ฐ ํ ๊ตฌํ : https://github.com/gluesql/gluesql/issues/354
ํ
์คํธ ์ถ๊ฐ
๋ฒ๊ทธ์์
#329 #353
Rust function PartialEq
, PartialOrd
test ์์ฑ ๋ฐ bug ์์ (2021.08.26 ~ 2021.08.30)
rust๋ฅผ ๊ณต๋ถํ๋ ํํธ rust์์ ์ง์ํ๋ ๋ด์ฅํจ์์ธ PartialEq
, PartialOrd
๋ฅผ customizingํด๋์ ๋ถ๋ถ์ ๊ฒ์ฆํ๊ธฐ ์ํ unit test๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ถ๊ฐํ๋ ๊ณผ์ ์์ bug๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋์์ต๋๋ค. PartialEq
ํจ์๊ฐ sql๋ฌธ์ parsingํ ํ ๋์จ ๋ฌธ์์ด์ ์ฌ๋ฌ data๋ค(Boolean, Number, Text, Interval, Null)๋ก ๋ถ๋ฅํ ํ ๋ data๊ฐ ๊ฐ์์ง๋ฅผ ๋น๊ตํ๋ ๊ธฐ๋ฅ์ธ๋ฐ ์ ์ 12์ 12.0์ ๋ค๋ฅด๊ฒ ํ๋จํ๋ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํด ์์ ํ ํ unit test code๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๋ํ PartialOrd
ํจ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ฅ๋ ๋ data๊ฐ์ ๋ํด ๊ฐ์์ง, ํฐ์ง, ์์์ง๋ฅผ ๋น๊ตํด Option<ordering> ํํ๋ก ๋ฐํํด์ฃผ๋ ํจ์์ด๋ฉฐ ์ด์ ๋ํด unit test code๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
๊ธฐ๋ฅ์ถ๊ฐ
#357
Logical XOR
๋ฅผ parser์ ์ถ๊ฐ (2021.08.30 ~ 2021.09.17)
bitwise operator์ธ ^
๋ ๊ตฌํ๋์ด ์์ผ๋ ๋
ผ๋ฆฌ์ ์ผ๋ก XOR
ํ๋ ๋ถ๋ถ์ parser๋ก ๊ตฌํ๋์ด ์์ง ์์ ์ถ๊ฐํ ๋ค ์ ๋๋ก parsing์ด ๋๋์ง test code๋ฅผ ์์ฑํ์ต๋๋ค.
๊ธฐ๋ฅ์ถ๊ฐ
#354
Boolean type
์ ๋ํ Logical XOR
์ ๋์์ ๊ตฌํ (2021.08.30 ~ 2021.09.17)
mariadb๋ฌธ์๋ฅผ ์ฐธ์กฐํด Boolean type๋ผ๋ฆฌ์ ๋ ผ๋ฆฌ์ XOR๊ฐ ๋์ํ๋๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. sqlparser ์์ ์๋ฃํ INT์ ๋ํด parsingํ๋ ๋ฐฉ์์ด ๋ฐ๋์ด ๊ธฐ์กด project์ธ GlueSql๋ updateํด์คฌ์ต๋๋ค. GlueSql์ sqlparser๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.