New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSSQL 환경 아래에서 칼럼 추가가 필요한 모듈 업데이트가 실패함 #1677

Closed
RapidWorkers opened this Issue Jul 27, 2015 · 4 comments

Comments

4 participants
@RapidWorkers
Contributor

RapidWorkers commented Jul 27, 2015

안녕하세요
제가 XE를 구동하는 환경은 아래와 같습니다.
app : Microsoft-IIS/8.5
xe_version : 1.8.7
php : 5.4.24

05. alter table xe_menu_item add desc  nvarchar(250)  default ''  not null 
        0.000858 sec. Query  : 0
               Array
(
    [0] => Array
        (
            [0] => 42000
            [SQLSTATE] => 42000
            [1] => 156
            [code] => 156
            [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'desc'.
            [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'desc'.
        )

    [1] => Array
        (
            [0] => 42000
            [SQLSTATE] => 42000
            [1] => 8180
            [code] => 8180
            [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement(s) could not be prepared.
            [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement(s) could not be prepared.
        )

)
.
        Connection: Master XXXX
        Query ID: member.getMemberListWithinGroup
        Called: . ()

DB로는 제목에도 써있다시피 MSSQL을 사용중입니다. 이번에 사이트를 업데이트하면서 모듈 업데이트를 눌렀으나 업데이트가 하나도 되지 않아(...) 디버그하여 확인해보니 위와 같은 문제가 발생하였습니다. 코어측에서 따옴표를 다 날리는건지 desc부분에 따옴표가 없어서 생기는 오류입니다.

alter table xe_menu_item add desc nvarchar(250) default '' not null

alter table xe_menu_item add "desc" nvarchar(250) default '' not null로 수정하면 동작합니다.

해결 부탁드립니다.

비슷한 사례(?) : #1641

1.8.1 환경 아니면 그 이전부터 존재하던 문제로 보입니다.

@RapidWorkers RapidWorkers changed the title from MSSQL 환경 아래에서 칼럼이 추가되는 모듈 업데이트가 실패함 to MSSQL 환경 아래에서 칼럼 추가가 필요한 모듈 업데이트가 실패함 Jul 27, 2015

@RapidWorkers

This comment has been minimized.

Show comment
Hide comment
@RapidWorkers

RapidWorkers Jul 27, 2015

Contributor

일단 PR을 올리기는 했습니다만... MSSQL 드라이버가 MySQL 복붙판이나 다름이 없습니다 ㅠㅠ
디폴트값이 존재할경우 alter부분을 손봐야 하는 등 앞으로 많은 부분에서 수정이 필요하겠네요.
아무래도 MSSQL 사용자가 적다보니 피드백이 잘 이루어지지 못하는 것 같습니다.

Contributor

RapidWorkers commented Jul 27, 2015

일단 PR을 올리기는 했습니다만... MSSQL 드라이버가 MySQL 복붙판이나 다름이 없습니다 ㅠㅠ
디폴트값이 존재할경우 alter부분을 손봐야 하는 등 앞으로 많은 부분에서 수정이 필요하겠네요.
아무래도 MSSQL 사용자가 적다보니 피드백이 잘 이루어지지 못하는 것 같습니다.

@kijin

This comment has been minimized.

Show comment
Hide comment
@kijin

kijin Jul 28, 2015

Contributor

따옴표가 빠진 것이 일단 가장 직접적인 원인인 것 같지만, desc 같은 키워드(예약어)를 컬럼 이름으로 사용하는 것도 딱히 바람직해 보이지는 않습니다. description이라고 하면 안되나요?

Contributor

kijin commented Jul 28, 2015

따옴표가 빠진 것이 일단 가장 직접적인 원인인 것 같지만, desc 같은 키워드(예약어)를 컬럼 이름으로 사용하는 것도 딱히 바람직해 보이지는 않습니다. description이라고 하면 안되나요?

@YJSoft

This comment has been minimized.

Show comment
Hide comment
@YJSoft

YJSoft Jul 28, 2015

Contributor

@kijin 일단 배포된 이상 컬럼명을 바꾸는 것은 힘들것 같고, 추후에도 이런 일이 얼마든지 생길 수 있으니 escape를 추가하는쪽이 더 바람직하다 생각합니다.

+MSSQL에서는 desc가 예약어였네요.. MySQL로만 체크하다 보니 이런점을 확인하기 쉽지 않습니다 ㅠㅠ

Contributor

YJSoft commented Jul 28, 2015

@kijin 일단 배포된 이상 컬럼명을 바꾸는 것은 힘들것 같고, 추후에도 이런 일이 얼마든지 생길 수 있으니 escape를 추가하는쪽이 더 바람직하다 생각합니다.

+MSSQL에서는 desc가 예약어였네요.. MySQL로만 체크하다 보니 이런점을 확인하기 쉽지 않습니다 ㅠㅠ

@kijin

This comment has been minimized.

Show comment
Hide comment
@kijin

kijin Jul 28, 2015

Contributor

@YJSoft descorder by 구문에 사용되기 때문에 MySQL, PostgreSQL, 큐브리드 등 모든 RDBMS에서 예약어입니다. 그동안 MySQL에서만 따옴표 처리를 해주었기 때문에 티가 나지 않은 것 뿐이지요.

일단 배포된 모듈이니 어쩔 수 없긴 하겠습니다.

Contributor

kijin commented Jul 28, 2015

@YJSoft descorder by 구문에 사용되기 때문에 MySQL, PostgreSQL, 큐브리드 등 모든 RDBMS에서 예약어입니다. 그동안 MySQL에서만 따옴표 처리를 해주었기 때문에 티가 나지 않은 것 뿐이지요.

일단 배포된 모듈이니 어쩔 수 없긴 하겠습니다.

@bnu bnu added the status/keep label Feb 1, 2017

@bnu bnu closed this Feb 1, 2017

bnu added a commit that referenced this issue Nov 28, 2017

Merge pull request #1679 from RapidWorkers/patch-1
fix #1677 MSSQL 쿼리 구문 오류 해결

@bnu bnu self-assigned this Nov 30, 2017

@bnu bnu added this to the 1.9.0 milestone Nov 30, 2017

@bnu bnu added this to 이슈 종료 in 이슈 진행 상황 Nov 30, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment