Search

Alter Table Modify Column 기능 개선

문서 번호 : 11-4212471

Document Information

최초 작성일 : 2026.01.15
최종 수정일 : 2026.01.20
이 문서는 아래 버전을 기준으로 작성되었습니다.
Singlestore : 9.0.14

Goal

기존 S2에서는 ColumnStore 테이블에 대해 ALTER TABLE MODIFY COLUMN이 지원되지 않았다.
9.0.14 버전부터 일부 제약이 완화되어, VARCHAR 데이터 타입의 크기를 확장할 수 있게 되었다.
이에 따라 본 문서에서는 해당 기능의 동작을 검증하기 위한 테스트를 진행한다.
VARCHAR 타입에 대한 확장은 지원하지만 축소 작업은 지원하지 않는다.

Solution

SingleStore 9.0.14 이전 버전 테스트 결과

9.0.14 이전 버전에서는 MODIFY COLUMN을 수행할 경우, 해당 기능을 지원하지 않는다는 에러가 발생하며 정상적으로 동작하지 않았다.

테이블 생성

CREATE TABLE t1 ( a VARCHAR(10) );
SQL
복사

컬럼 타입 변경 (ERROR 발생)

ALTER TABLE t1 MODIFY a VARCHAR(20);
SQL
복사
ERROR 1890 ER_MEMSQL_ONLINE_ALTER_IMPOSSIBLE_COLUMNSTORE: ALTER TABLE which modifies type of column `a` is not supported on a columnstore table.
SQL
복사

SingleStore 9.0.14 버전 테스트

테이블 생성 및 데이터 삽입

CREATE TABLE t1 ( a VARCHAR(3) );
SQL
복사
INSERT INTO t1 value ('111')
SQL
복사

컬럼 타입 변경 (VARCHAR 크기 확장)

크기 확장 작업이 에러 없이 정상적으로 동작함을 확인할 수 있다.
ALTER TABLE t1 MODIFY a VARCHAR(10); Query OK, 0 rows affected (0.22 sec) Records: 0 Duplicates: 0 Warnings: 0
SQL
복사

메타데이터 확인

VARCHAR 크기를 증가시키더라도 기존 데이터는 수정되지 않으며 별도의 BLOB 파일 생성 없이 메타데이터 변경만 수행된다.
VARCHAR 크기 확장 전 Columnar Segments 및 COLUMNS 뷰
SELECT TABLE_NAME, `FILE`, CREATION_TIME FROM information_schema.COLUMNAR_SEGMENTS WHERE TABLE_NAME='t1' AND COLUMN_NAME='a'; +---------------+--------------------+---------------------+ | TABLE_NAME | FILE | CREATION_TIME | +---------------+--------------------+---------------------+ | t1 | blobs/2/0/0/12_323 | 2025-12-15 14:24:05 | +---------------+--------------------+---------------------+
SQL
복사
SELECT COLUMN_NAME, DATA_TYPE,CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS WHERE TABLE_NAME='t1' AND COLUMN_NAME='a'; +-------------+-----------+--------------------------+ | COLUMN_NAME | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | +-------------+-----------+--------------------------+ | a | varchar | 3 | +-------------+-----------+--------------------------+
SQL
복사
Varchar 크기 확장 후 Columnar Segments 및 COLUMNS 뷰
SELECT TABLE_NAME, `FILE`, CREATION_TIME FROM information_schema.COLUMNAR_SEGMENTS WHERE TABLE_NAME='t1' AND COLUMN_NAME='a'; +---------------+--------------------+---------------------+ | TABLE_NAME | FILE | CREATION_TIME | +---------------+--------------------+---------------------+ | t1 | blobs/2/0/0/12_323 | 2025-12-15 14:24:05 | +---------------+--------------------+---------------------+
SQL
복사
SELECT COLUMN_NAME, DATA_TYPE,CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS WHERE TABLE_NAME='t1' AND COLUMN_NAME='a'; +-------------+-----------+--------------------------+ | COLUMN_NAME | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | +-------------+-----------+--------------------------+ | a | varchar | 10 | +-------------+-----------+--------------------------+
SQL
복사

References

History

일자
작성자
비고
2026.01.15
hoon
최초 작성
2026.01.20
hoon
내용 수정