Search

Alter Table Modify Column 기능 개선

문서 번호 : 11-4212471

Document Information

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

Goal

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

Solution

SingleStore 9.0.13 이전 버전 테스트 결과

•
9.0.13 이전 버전에서는 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.13 버전 테스트

테이블 생성 및 데이터 삽입

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
내용 수정
📧