2010년 11월 28일 일요일

MySQL해킹

어떤 새로운 Native SQL함수를 추가하려는 경우나  새로운 데이터형을 추가하려는 경우 각각 DDL문과 DML문에 있어서 심볼로 먹힐려면 SQL파서를 개조하지않으면 SQL구문해석할 때에문법에러처리되게 된다

그래서 여기서부터는 SQL파서 개조에 대해서 이야기해 볼 까한다.

보통 SQL에서는 "SELECT ... FROM .. "등의 문법에 따라서 SQL문을 작성해서 서버에 송신하지만 여기에서는 "Hello World"라는 명령어를 새로운 SQL 명령어로서 MySQL에 추가해 볼 것이다.

또,   비교적 간단한 것으로 시스템 변수 (my.cnf에서 지정가능하고 SHOW VARIABLES에서 확인가능)의 추가,  상태변수( SHOW STATUS로 확인가능)의 추가에서도 소개해 볼까한다.


이런 해킹은 현실적으로 그다지 필요하지 않을지도 모르겠지만 MySQL를 업무로 다루는 기술자에게는 "몰라, 해킹않해!" 보다는  "해킹할 수 있는 지식도 있고 내부도 잘 알고 있지만  여러가지 이유로 공식바이너리를 사용해!" 라는 자세가 필요하다고 본다.