Thanks Lining for your feedback. > 1. For columns which has default value, could the user alter its type?
User can alter its type, the subsequent writing will be automatically completed schema evolution. > 2. Will there be a procedure to help users update the default values for > historical data? No, because the default value affects writing, users need to manually INSERT OVERWRITE for historical data. Best, Jingsong On Tue, Jun 17, 2025 at 9:25 AM lining jing <jinglini...@gmail.com> wrote: > > Hi Jingsong, > > Thank you for initiating this discussion about default values in Paimon. > > The ability to specify default values for columns during table creation > offers a streamlined approach to handling situations where certain data may > not be provided by users. This feature reduces the risk of errors and > maintains data consistency without additional overhead. > Supporting the alteration of default values (as shown with the ALTER TABLE > T ALTER COLUMN b SET DEFAULT 3 example) increases the adaptability of > schema management. This feature ensures that evolving data requirements can > be accommodated without the need for complex migrations or modifications to > existing data. > > I hava a question: > 1. For columns which has default value, could the user alter its type? > 2. Will there be a procedure to help users update the default values for > historical data? > > Jingsong Li <jingsongl...@gmail.com> 于2025年6月16日周一 23:08写道: > > > Hi everyone, > > > > I want to start a discussion about default values in Paimon. > > > > Paimon can allow specifying default values for columns. When users > > write to these tables without explicitly providing values for certain > > columns, Paimon automatically generates default values for these > > columns. > > > > ## Create Table > > > > User can create a table with columns with default values using the > > following SQL: > > > > CREATE TABLE my_table ( > > a BIGINT, > > b STRING DEFAULT 'my_value', > > c INT DEFAULT 5 > > ); > > > > ## Insert Table > > > > For SQL commands that execute table writes, such as the INSERT, > > UPDATE, and MERGE commands, the DEFAULT keyword or NULL value is > > parsed into the default value specified for the corresponding column. > > > > ## Alter Default Value > > > > Paimon supports alter column default values. > > > > For example: > > > > CREATE TABLE T (a INT, b INT DEFAULT 2); > > > > INSERT INTO T (a) VALUES (1); > > -- result: [[1, 2]] > > > > ALTER TABLE T ALTER COLUMN b SET DEFAULT 3; > > > > INSERT INTO T (a) VALUES (2); > > -- result: [[1, 2], [2, 3]] > > > > The default value of 'b' column has been changed to 3 from 2. > > > > ## Limitation > > > > Not support alter table add column with default value, for example: > > ALTER TABLE T ADD COLUMN d INT DEFAULT 5;. > > > > What do you think? > > > > Best, > > Jingsong > >