fix(테이블타입): constraints SQL ARRAY_AGG → text 캐스트로 일원화 #16

Merged
johngreen merged 1 commits from johngreen into main 2026-05-14 00:18:54 +00:00
Contributor

요약

이전 PR (#15) 의 Java parseColumnArrayjava.sql.Array 분기를 추가했지만 실제 운영에서 여전히 빈 배열 반환. MyBatis ↔ PostgreSQL 의 array 타입 변환이 java.sql.Array 가 아닌 다른 경로로 도착하는 것으로 보임.

변경

SQL 단에서 ARRAY_AGG(...)::text 캐스트 → PostgreSQL 가 "{email,phone}" 형태 String 으로 반환. parseColumnArray 의 기존 String 분기가 처리.

  • tableManagement.xml: getTablePrimaryKeyList, getTableIndexList 두 쿼리 모두 ::text 추가
  • TableManagementService.parseColumnArray: 이전 PR 의 java.sql.Array 분기 revert (Dead code)

Test plan

  • solution.invyone.com customer_mng → IDX/PK 컬럼이 빈 배열이 아닌 실제 컬럼명 반환
  • IDX 토글 양방향 (create + drop) 정상 작동, 토글 상태 UI 에 반영
## 요약 이전 PR (#15) 의 Java `parseColumnArray` 에 `java.sql.Array` 분기를 추가했지만 실제 운영에서 여전히 빈 배열 반환. MyBatis ↔ PostgreSQL 의 array 타입 변환이 `java.sql.Array` 가 아닌 다른 경로로 도착하는 것으로 보임. ## 변경 SQL 단에서 `ARRAY_AGG(...)::text` 캐스트 → PostgreSQL 가 `"{email,phone}"` 형태 String 으로 반환. `parseColumnArray` 의 기존 String 분기가 처리. - `tableManagement.xml`: `getTablePrimaryKeyList`, `getTableIndexList` 두 쿼리 모두 `::text` 추가 - `TableManagementService.parseColumnArray`: 이전 PR 의 java.sql.Array 분기 revert (Dead code) ## Test plan - [ ] solution.invyone.com customer_mng → IDX/PK 컬럼이 빈 배열이 아닌 실제 컬럼명 반환 - [ ] IDX 토글 양방향 (create + drop) 정상 작동, 토글 상태 UI 에 반영
johngreen added 1 commit 2026-05-14 00:18:53 +00:00
이전 PR (#15) 의 Java parseColumnArray 분기 추가가 실제 운영 환경에서
빈 배열을 그대로 반환 — MyBatis ↔ PostgreSQL JDBC 의 array 타입 변환이
java.sql.Array 가 아닌 다른 경로로 도착하는 듯.

방식 변경: SQL 단에서 ARRAY_AGG(...)::text 캐스트 → PostgreSQL 가
"{email,phone}" String 으로 반환. parseColumnArray 의 기존 String 분기
(중괄호 제거 + 쉼표 split) 가 자연스럽게 처리.

장점:
- JDBC 드라이버 / MyBatis 변환 동작에 의존하지 않음
- parseColumnArray 코드 단순 복원 (List/String 2분기)
- 한 줄 SQL 변경으로 PK/IDX 두 쿼리 모두 해결

검증:
- gradle compileJava BUILD SUCCESSFUL
- solution.invyone.com 에서 customer_mng PK columns / email IDX columns
  비어있지 않음 확인 예정

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
johngreen merged commit ec679ac640 into main 2026-05-14 00:18:54 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gbpark/invyone#16