fix(테이블타입): constraints API PgArray 디코딩 + primary_key key 매칭 #15
Reference in New Issue
Block a user
Delete Branch "johngreen"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
요약
테이블 타입 관리 페이지에서 PK/IDX 토글 후 UI 상태가 갱신되지 않던 버그 수정.
원인
TableManagementService.parseColumnArray— PostgreSQLARRAY_AGG가java.sql.Array(PgArray) 객체로 오는데List/String만 처리해서 항상List.of()반환. 즉 constraints API 의columns가 항상 빈 배열.loadConstraints— 백엔드는result.put("primary_key", ...)snake_case 인데 프론트가data.primaryKeycamelCase 로 읽어 항상 undefined.결과: PR #14 로 IDX API 호출은 200 으로 성공하지만 UI 토글 상태가 켜지지 않아 사용자가 "동작 안한다" 라고 인식.
변경
TableManagementService.parseColumnArray:java.sql.Array분기 추가 →arr.getArray()로Object[]꺼내List<String>변환tableMngList/page.tsx::loadConstraints:data.primary_key로 통일Test plan
테이블 타입 관리 페이지에서 PK/IDX 토글 후 UI 상태가 갱신되지 않던 버그. 1. Backend: TableManagementService.parseColumnArray - PostgreSQL ARRAY_AGG 가 java.sql.Array (PgArray) 로 오는데 List/String 만 처리해서 항상 List.of() 반환 → columns 빈 배열 - 조치: java.sql.Array 분기 추가, arr.getArray() → Object[] → List<String> 2. Frontend: loadConstraints - 백엔드는 result.put("primary_key", ...) 로 snake_case 반환 - 프론트가 data.primaryKey 로 camelCase 로 읽어 undefined → 항상 빈 PK - 조치: data.primary_key 로 통일 이전 PR (#14) 의 IDX payload 수정과 합쳐, PK/IDX 토글이 API 호출/DB 적용/ UI 반영까지 한 사이클로 동작. 검증: - gradle compileJava BUILD SUCCESSFUL - solution.invyone.com 에서 IDX 토글 양방향 확인 예정 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>