node.js 에서 mysql 모듈을 사용해서 다음과 같은 query 를 실행한다고 가정해 보죠.
select user_id, user_name
from SAMPLE_USER
실행결과 result 에는 대략 다음과 같습니다
[
{ user_id: 'user01', user_name: '이용자01' },
{ user_id: 'user02', user_name: '이용자02' },
...
]
이때 row 의 column 에 해당하는 user_id, user_name 은
SQL Query 에서 작성한 column (또는 column alias) 대소문자까지 그대로 설정됩니다.
작성된 Query 문과 관계없이 무조건 대문자(또는 소문자나 CamelCase) 로 결과를 받고 싶은 경우
어떻게 해야할까요?
이것은 직접 SQL 을 수정해야 하는 것으로,
최초의 전제와 관계없으므로 논외
result 수신시 row column 에 해당하는 key 값을 대문자로 모두 변경하는 것으로
공통 모듈등에 적용하면 가능한 방안이지만
데이터가 많아지면 변환처리가 좀 낭비로 느껴질 듯
검토하다가 node.js mysql module 을 직접 수정하기로 했습니다.
이 부분도 option 으로 제공되면 좋을 둣한데 따로 지원하지 않는 것 같아서
일단 소스상에서 정책(대문자?소문자?CamelCase) 에 따라 직접 수정하는 쪽으로 적용해 보았습니다.
수정할 소스는 mysql/lib/protocol/sequences/Query.js
수정한 내용은 아래와 같습니다. (FieldPacket 부분)