================================================================================
Alter table and add column
================================================================================

ALTER TABLE my_table
  ADD COLUMN val3 VARCHAR(100) NOT NULL;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (add_column
        (keyword_add)
        (keyword_column)
        (column_definition
          name: (identifier)
          type: (varchar
            (keyword_varchar)
            size: (literal))
          (keyword_not)
          (keyword_null))))))

================================================================================
Alter table and add column with FQN
================================================================================

ALTER TABLE my_database.my_table.my_table
  ADD COLUMN val3 VARCHAR(100) NOT NULL;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        database: (identifier)
        schema: (identifier)
        name: (identifier))
      (add_column
        (keyword_add)
        (keyword_column)
        (column_definition
          name: (identifier)
          type: (varchar
            (keyword_varchar)
            size: (literal))
          (keyword_not)
          (keyword_null))))))

================================================================================
Alter table and add column, eliding column keyword
================================================================================

ALTER TABLE my_table
  ADD val3 VARCHAR(100) NOT NULL;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (add_column
        (keyword_add)
        (column_definition
          name: (identifier)
          type: (varchar
            (keyword_varchar)
            size: (literal))
          (keyword_not)
          (keyword_null))))))

================================================================================
Alter table and add column first
================================================================================

ALTER TABLE my_table
  ADD val3 VARCHAR(100) NOT NULL FIRST;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (add_column
        (keyword_add)
        (column_definition
          name: (identifier)
          type: (varchar
            (keyword_varchar)
            size: (literal))
          (keyword_not)
          (keyword_null))
        (column_position
          (keyword_first))))))

================================================================================
Alter table and add column after column
================================================================================

ALTER TABLE my_table
  ADD val3 VARCHAR(100) NOT NULL AFTER val2;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (add_column
        (keyword_add)
        (column_definition
          name: (identifier)
          type: (varchar
            (keyword_varchar)
            size: (literal))
          (keyword_not)
          (keyword_null))
        (column_position
          (keyword_after)
          col_name: (identifier))))))

================================================================================
Alter table and alter column setting default
================================================================================

ALTER TABLE my_table
  ALTER COLUMN val3 SET DEFAULT 'hi';

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        name: (identifier)
        (keyword_set)
        (keyword_default)
        (literal)))))

================================================================================
Alter table and alter column dropping default
================================================================================

ALTER TABLE my_table
  ALTER COLUMN val3 DROP DEFAULT;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        name: (identifier)
        (keyword_drop)
        (keyword_default)))))

================================================================================
Alter table and alter column changing type
================================================================================

ALTER TABLE my_table
  ALTER COLUMN val3 TYPE VARCHAR(255);

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        name: (identifier)
        (keyword_type)
        type: (varchar
          (keyword_varchar)
          size: (literal))))))

================================================================================
Alter table and modify column changing type and position
================================================================================

ALTER TABLE my_table
  MODIFY COLUMN IF EXISTS val6 INT UNSIGNED NOT NULL AFTER val3;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (modify_column
        (keyword_modify)
        (keyword_column)
        (keyword_if)
        (keyword_exists)
        (column_definition
          name: (identifier)
          type: (int
            (keyword_int)
            (keyword_unsigned))
          (keyword_not)
          (keyword_null))
        (column_position
          (keyword_after)
          col_name: (identifier))))))

================================================================================
Alter table and change column renaming and changing type
================================================================================

ALTER TABLE my_table
  CHANGE COLUMN IF EXISTS val3 val4 INT UNSIGNED NOT NULL;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (change_column
        (keyword_change)
        (keyword_column)
        (keyword_if)
        (keyword_exists)
        old_name: (identifier)
        (column_definition
          name: (identifier)
          type: (int
            (keyword_int)
            (keyword_unsigned))
          (keyword_not)
          (keyword_null))))))

================================================================================
Alter table and alter column changing type, eliding column keyword
================================================================================

ALTER TABLE my_table
  ALTER val3 TYPE VARCHAR(255);

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (alter_column
        (keyword_alter)
        name: (identifier)
        (keyword_type)
        type: (varchar
          (keyword_varchar)
          size: (literal))))))

================================================================================
Alter table and alter column dropping not-null constraint
================================================================================

ALTER TABLE my_table
  ALTER COLUMN val3 DROP NOT NULL;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        name: (identifier)
        (keyword_drop)
        (keyword_not)
        (keyword_null)))))

================================================================================
Alter table and drop column
================================================================================

ALTER TABLE my_table
  DROP COLUMN val3;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (drop_column
        (keyword_drop)
        (keyword_column)
        name: (identifier)))))

================================================================================
Alter table and drop column, eliding column keyword
================================================================================

ALTER TABLE my_table
  DROP val3;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (drop_column
        (keyword_drop)
        name: (identifier)))))

================================================================================
Alter table and rename column
================================================================================

ALTER TABLE my_table
  RENAME COLUMN val3 TO valthree;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (rename_column
        (keyword_rename)
        (keyword_column)
        old_name: (identifier)
        (keyword_to)
        new_name: (identifier)))))

================================================================================
Alter and rename table
================================================================================

ALTER TABLE my_table
  RENAME TO my_new_and_improved_table;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (rename_object
        (keyword_rename)
        (keyword_to)
        (object_reference
          name: (identifier))))))

================================================================================
Alter table and set schema
================================================================================

ALTER TABLE my_table
  SET SCHEMA new_schema;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (set_schema
        (keyword_set)
        (keyword_schema)
        schema: (identifier)))))

================================================================================
Alter table and change owner
================================================================================

ALTER TABLE my_table
  OWNER TO someone_else;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (change_ownership
        (keyword_owner)
        (keyword_to)
        (identifier)))))

================================================================================
Alter table and multiple
================================================================================

ALTER TABLE IF EXISTS my_table
  ADD COLUMN IF NOT EXISTS val4 DATE,
  ALTER COLUMN val5 DROP NOT NULL, -- comment, ignore me!
  DROP COLUMN IF EXISTS val8;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (keyword_if)
      (keyword_exists)
      (object_reference
        name: (identifier))
      (add_column
        (keyword_add)
        (keyword_column)
        (keyword_if)
        (keyword_not)
        (keyword_exists)
        (column_definition
          name: (identifier)
          type: (keyword_date)))
      (alter_column
        (keyword_alter)
        (keyword_column)
        name: (identifier)
        (keyword_drop)
        (keyword_not)
        (keyword_null))
      (comment)
      (drop_column
        (keyword_drop)
        (keyword_column)
        (keyword_if)
        (keyword_exists)
        name: (identifier)))))

================================================================================
Alter view and change owner
================================================================================

ALTER VIEW my_view
  OWNER TO someone_else;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_view
      (keyword_alter)
      (keyword_view)
      (object_reference
        name: (identifier))
      (change_ownership
        (keyword_owner)
        (keyword_to)
        (identifier)))))

================================================================================
Alter view and rename
================================================================================

ALTER VIEW IF EXISTS my_view
  RENAME TO my_other_view;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_view
      (keyword_alter)
      (keyword_view)
      (keyword_if)
      (keyword_exists)
      (object_reference
        name: (identifier))
      (rename_object
        (keyword_rename)
        (keyword_to)
        (object_reference
          name: (identifier))))))

================================================================================
alter with constraint
================================================================================

ALTER TABLE "Role" ADD CONSTRAINT "pkRole" PRIMARY KEY ("roleId");

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (add_constraint
        (keyword_add)
        (keyword_constraint)
        (identifier)
        (constraint
          (keyword_primary)
          (keyword_key)
          (ordered_columns
            (column
              name: (literal))))))))

================================================================================
Drop column constraint
================================================================================

ALTER TABLE posts DROP CONSTRAINT posts_user_id_fkey;

--------------------------------------------------------------------------------

(program
    (statement
        (alter_table
            (keyword_alter)
            (keyword_table)
            (object_reference
                name: (identifier))
            (drop_constraint
                (keyword_drop)
                (keyword_constraint)
                (identifier))
        )
    )
)

================================================================================
Add foreign key constraint
================================================================================

ALTER TABLE "AccountRole" ADD CONSTRAINT "fkAccountRoleAccount"
FOREIGN KEY ("accountId") REFERENCES "Account" ("accountId") ON DELETE CASCADE;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        name: (identifier))
      (add_constraint
        (keyword_add)
        (keyword_constraint)
        (identifier)
        (constraint
          (keyword_foreign)
          (keyword_key)
          (ordered_columns
            (column
              name: (literal)))
          (keyword_references)
          (object_reference
            name: (identifier))
          (identifier)
          (keyword_on)
          (keyword_delete)
          (keyword_cascade))))))

================================================================================
MySQL: Rename table
================================================================================

RENAME TABLES IF EXISTS old_table
NOWAIT
TO backup_table,
new_table TO old_table;

--------------------------------------------------------------------------------

(program
  (statement
    (keyword_rename)
    (keyword_tables)
    (keyword_if)
    (keyword_exists)
    (object_reference
      (identifier))
    (keyword_nowait)
    (keyword_to)
    (object_reference
      (identifier))
    (object_reference
      (identifier))
    (keyword_to)
    (object_reference
      (identifier))))

================================================================================
T-SQL: alter table add multiple columns at once
================================================================================

ALTER TABLE tab
ADD
col1 VARCHAR(255) NOT NULL DEFAULT('EMPTY'),
col2 VARCHAR(255) NOT NULL DEFAULT('EMPTY');

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (add_column
        (keyword_add)
        (column_definition
          (identifier)
          (varchar
            (keyword_varchar)
            (literal))
          (keyword_not)
          (keyword_null)
          (keyword_default)
          (list
            (literal))))
      (add_column
        (column_definition
          (identifier)
          (varchar
            (keyword_varchar)
            (literal))
          (keyword_not)
          (keyword_null)
          (keyword_default)
          (list
            (literal)))))))

================================================================================
Alter schema rename
================================================================================

ALTER SCHEMA sales RENAME TO mysales;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_schema
      (keyword_alter)
      (keyword_schema)
      (identifier)
      (keyword_rename)
      (keyword_to)
      (identifier))))

================================================================================
Alter schema owner
================================================================================

ALTER SCHEMA sales OWNER TO CURRENT_USER;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_schema
      (keyword_alter)
      (keyword_schema)
      (identifier)
      (keyword_owner)
      (keyword_to)
      (identifier))))

================================================================================
Alter index rename
================================================================================

ALTER INDEX IF EXISTS myindex RENAME TO my_index

--------------------------------------------------------------------------------

(program
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (keyword_if)
      (keyword_exists)
      (identifier)
      (rename_object
        (keyword_rename)
        (keyword_to)
        (object_reference
          (identifier))))))

================================================================================
Alter index set
================================================================================

ALTER INDEX distributors SET (fillfactor = 75);
ALTER INDEX distributors SET TABLESPACE fasttablespace;
ALTER INDEX distributors RESET (fillfactor);

--------------------------------------------------------------------------------

(program
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_set)
      (identifier)
      (literal)))
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_set)
      (keyword_tablespace)
      (identifier)))
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_reset)
      (identifier))))

================================================================================
Alter index alter column
================================================================================

ALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_alter)
      (keyword_column)
      (literal)
      (keyword_set)
      (keyword_statistics)
      (literal))))

================================================================================
Alter index set and reset
================================================================================

ALTER INDEX distributors SET (fillfactor = 75);
ALTER INDEX distributors SET TABLESPACE fasttablespace;
ALTER INDEX distributors RESET (fillfactor);

--------------------------------------------------------------------------------

(program
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_set)
      (identifier)
      (literal)))
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_set)
      (keyword_tablespace)
      (identifier)))
  (statement
    (alter_index
      (keyword_alter)
      (keyword_index)
      (identifier)
      (keyword_reset)
      (identifier))))

================================================================================
Alter database rename
================================================================================

ALTER DATABASE hollywood RENAME TO bollywood;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (rename_object
        (keyword_rename)
        (keyword_to)
        (object_reference
          (identifier))))))

================================================================================
Alter database set
================================================================================

ALTER DATABASE test SET enable_indexscan TO off;
ALTER DATABASE test SET enable_indexscan TO DEFAULT;
ALTER DATABASE test SET TABLESPACE fasttablespace;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (keyword_set)
      (set_configuration
        (identifier)
        (keyword_to)
        (identifier))))
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (keyword_set)
      (set_configuration
        (identifier)
        (keyword_to)
        (keyword_default))))
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (keyword_set)
      (keyword_tablespace)
      (identifier))))

================================================================================
Alter datbase reset
================================================================================

ALTER DATABASE test RESET ALL;
ALTER DATABASE test RESET enable_indexscan;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (keyword_reset)
      (keyword_all)))
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (keyword_reset)
      (identifier))))

================================================================================
Alter datbase change ownership
================================================================================

ALTER DATABASE test OWNER TO me;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_database
      (keyword_alter)
      (keyword_database)
      (identifier)
      (change_ownership
        (keyword_owner)
        (keyword_to)
        (identifier)))))

================================================================================
Alter role rename
================================================================================

ALTER ROLE rapunzel RENAME TO snow_white;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (rename_object
        (keyword_rename)
        (keyword_to)
        (object_reference
          (identifier))))))

================================================================================
Alter role valid until
================================================================================

ALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';
ALTER ROLE fred VALID UNTIL 'infinity';

--------------------------------------------------------------------------------

(program
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (keyword_valid)
      (keyword_until)
      (literal)))
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (keyword_valid)
      (keyword_until)
      (literal))))

================================================================================
Alter role set
================================================================================

ALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;
ALTER ROLE worker_bee SET maintenance_work_mem = 100000;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (keyword_in)
      (keyword_database)
      (identifier)
      (keyword_set)
      (set_configuration
        (identifier)
        (identifier))))
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (keyword_set)
      (set_configuration
        (identifier)
        (literal)))))

================================================================================
Alter role assigns
================================================================================

ALTER ROLE miriam CREATEROLE CREATEDB;
ALTER ROLE rapunzel SUPERUSER NOLOGIN CONNECTION LIMIT 69;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (identifier)
      (identifier)))
  (statement
    (alter_role
      (keyword_alter)
      (keyword_role)
      (identifier)
      (identifier)
      (identifier)
      (keyword_connection)
      (keyword_limit)
      (literal))))

================================================================================
Alter sequence restart
================================================================================

ALTER SEQUENCE serial RESTART WITH 105;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_sequence
      (keyword_alter)
      (keyword_sequence)
      (object_reference
        (identifier))
      (keyword_restart)
      (keyword_with)
      (literal))))

================================================================================
Alter sequence rename
================================================================================

ALTER SEQUENCE IF EXISTS serial RENAME TO cereal;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_sequence
      (keyword_alter)
      (keyword_sequence)
      (keyword_if)
      (keyword_exists)
      (object_reference
        (identifier))
      (rename_object
        (keyword_rename)
        (keyword_to)
        (object_reference
          (identifier))))))

================================================================================
Alter sequence change Schema
================================================================================

ALTER SEQUENCE serial SET SCHEMA serious_schema;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_sequence
      (keyword_alter)
      (keyword_sequence)
      (object_reference
        (identifier))
      (keyword_set)
      (keyword_schema)
      (identifier))))

================================================================================
Alter sequence change owner
================================================================================

ALTER SEQUENCE serial OWNER TO count_von_count;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_sequence
      (keyword_alter)
      (keyword_sequence)
      (object_reference
        (identifier))
      (change_ownership
        (keyword_owner)
        (keyword_to)
        (identifier)))))

================================================================================
Alter sequence complex example
================================================================================

ALTER SEQUENCE IF EXISTS serial
AS BIGINT
INCREMENT BY 2
MINVALUE 3
MAXVALUE NO MAXVALUE
START WITH 11
RESTART WITH 1111
CACHE 100
OWNED BY numbers.number_sequences

--------------------------------------------------------------------------------

(program
  (statement
    (alter_sequence
      (keyword_alter)
      (keyword_sequence)
      (keyword_if)
      (keyword_exists)
      (object_reference
        (identifier))
      (keyword_as)
      (bigint
        (keyword_bigint))
      (keyword_increment)
      (keyword_by)
      (literal)
      (keyword_minvalue)
      (literal)
      (keyword_maxvalue)
      (keyword_no)
      (keyword_maxvalue)
      (keyword_start)
      (keyword_with)
      (literal)
      (keyword_restart)
      (keyword_with)
      (literal)
      (keyword_cache)
      (literal)
      (keyword_owned)
      (keyword_by)
      (object_reference
        (identifier)
        (identifier)))))

================================================================================
Add foreign key constraint
================================================================================

ALTER TABLE "AccountRole" ADD CONSTRAINT "fkAccountRoleAccount"
FOREIGN KEY ("accountId") REFERENCES "Account" ("accountId")
ON DELETE SET NULL
ON UPDATE SET DEFAULT;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (add_constraint
        (keyword_add)
        (keyword_constraint)
        (identifier)
        (constraint
          (keyword_foreign)
          (keyword_key)
          (ordered_columns
            (column
              (literal)))
          (keyword_references)
          (object_reference
            (identifier))
          (identifier)
          (keyword_on)
          (keyword_delete)
          (keyword_set)
          (keyword_null)
          (keyword_on)
          (keyword_update)
          (keyword_set)
          (keyword_default))))))

================================================================================
Add unique constraint
================================================================================

ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE (col1, col2, col3);

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (add_constraint
        (keyword_add)
        (keyword_constraint)
        (identifier)
        (constraint
          (keyword_unique)
          (ordered_columns
            (column
              (identifier))
            (column
              (identifier))
            (column
              (identifier))))))))


================================================================================
Alter Column Set Storage
================================================================================

ALTER TABLE table_name
    ALTER COLUMN col1 SET STORAGE PLAIN;
ALTER TABLE table_name
    ALTER COLUMN col1 SET STORAGE EXTERNAL;
ALTER TABLE table_name
    ALTER COLUMN col1 SET STORAGE EXTENDED;
ALTER TABLE table_name
    ALTER COLUMN col1 SET STORAGE MAIN;
ALTER TABLE table_name
    ALTER COLUMN col1 SET STORAGE DEFAULT;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_storage)
        (keyword_plain))))
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_storage)
        (keyword_external))))
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_storage)
        (keyword_extended))))
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_storage)
        (keyword_main))))
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_storage)
        (keyword_default)))))

================================================================================
Alter Column Set Compression
================================================================================

ALTER TABLE table_name
    ALTER COLUMN col1 SET COMPRESSION lz4;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_compression)))))

================================================================================
Alter Column Set Statistics
================================================================================

ALTER TABLE table_name
    ALTER COLUMN col1 SET STATISTICS 100;

--------------------------------------------------------------------------------

(program
  (statement
    (alter_table
      (keyword_alter)
      (keyword_table)
      (object_reference
        (identifier))
      (alter_column
        (keyword_alter)
        (keyword_column)
        (identifier)
        (keyword_set)
        (keyword_statistics)))))
