{
  "scenarios": [
    {
      "type": "create",
      "name": "Create Table for testing column node (v.12+)",
      "endpoint": "NODE-table.obj",
      "sql_endpoint": "NODE-table.sql_id",
      "data": {
        "name": "table_3_$%{}[]()&*^!@\"'`\\/#",
        "is_partitioned": false,
        "columns": [],
        "schema": "testschema"
      },
      "store_object_id": true
    },
    {
      "type": "create",
      "name": "Create Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_1_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attoptions": [],
        "seclabels": [],
        "defval": "1"
      },
      "expected_sql_file": "create_column_int.sql",
      "expected_msql_file": "create_column_int.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 1,
        "name": "new_col_1_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for alter",
        "cltype": "real",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "w",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "x",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_int.sql",
      "expected_msql_file": "alter_column_int.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Privilege change)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 1,
        "name": "new_col_1_$%{}[]()&*^!@\"'`\\/#",
        "attacl": {
          "changed": [
            {
              "grantee": "enterprisedb",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_alt_privilege.sql",
      "expected_msql_file": "alter_column_alt_privilege.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_1_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column (Character type)",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_2_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "cltype": "character varying",
        "collspcname": "pg_catalog.\"C\"",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": false,
        "attlen": "50",
        "attprecision": "",
        "attoptions": [],
        "seclabels": []
      },
      "expected_sql_file": "create_column_char.sql",
      "expected_msql_file": "create_column_char.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Character type)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 2,
        "name": "new_col_2_$%{}[]()&*^!@\"'`\\/#",
        "attlen": null,
        "attstattarget": "5",
        "attstorage": "p",
        "description": "Comment for alter",
        "cltype": "character",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "x",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_char.sql",
      "expected_msql_file": "alter_column_char.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column (Character type)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_2_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column (Integer/Numeric type) with identity",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_3_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attoptions": [],
        "seclabels": [],
        "attidentity": "a",
        "seqincrement": "1",
        "seqstart": "1",
        "seqmin": "1",
        "seqmax": "99999",
        "seqcache": "10",
        "seqcycle": true,
        "colconstype": "i"
      },
      "expected_sql_file": "create_column_int_identity.sql",
      "expected_msql_file": "create_column_int_identity.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Integer/Numeric type) with identity",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 3,
        "name": "new_col_3_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for alter",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "x",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_identity.sql",
      "expected_msql_file": "alter_column_identity.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Integer/Numeric type) drop identity",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 3,
        "colconstype": "n"
      },
      "expected_sql_file": "alter_column_drop_identity.sql",
      "expected_msql_file": "alter_column_drop_identity.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_3_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column (Integer/Numeric type) with Generated feature",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_4_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": false,
        "attlen": "",
        "attprecision": "",
        "attidentity": "a",
        "colconstype": "g",
        "genexpr": "1 + 2 + 3",
        "attoptions": [],
        "seclabels": []
      },
      "expected_sql_file": "create_column_int_generated.sql",
      "expected_msql_file": "create_column_int_generated.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Integer/Numeric type) with Generated feature",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 4,
        "name": "new_col_4_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for alter",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "x",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_generated.sql",
      "expected_msql_file": "alter_column_generated.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_4_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column (Numeric type with Length Precision & Variables)",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_5_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "min_val": 0,
        "max_val": 1000,
        "cltype": "numeric",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "10",
        "attprecision": "5",
        "attidentity": "a",
        "attoptions": [
          {
            "name": "n_distinct",
            "value": "1"
          }
        ],
        "seclabels": []
      },
      "expected_sql_file": "create_column_numeric.sql",
      "expected_msql_file": "create_column_numeric.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Numeric type with Length Precision & Variables)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "name": "new_col_5_$%{}[]()&*^!@\"'`\\/#",
        "attnum": 5,
        "attlen": "15",
        "attprecision": "6",
        "description": "Comment for alter",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "w",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "x",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_numeric.sql",
      "expected_msql_file": "alter_column_numeric.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Remove Length)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 3,
        "attlen": ""
      },
      "expected_sql_file": "alter_column_remove_length.sql",
      "expected_msql_file": "alter_column_remove_length.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column (Numeric type with Length Precision & Variables)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_5_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Dummy Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "dummy1",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attoptions": [],
        "seclabels": [],
        "defval": "1"
      }
    },
    {
      "type": "create",
      "name": "Create Dummy Column (Integer/Numeric type)",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "dummy2",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attoptions": [],
        "seclabels": [],
        "defval": "1"
      }
    },
    {
      "type": "create",
      "name": "Create Column (Integer/Numeric type) with Generated feature with columns",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_8_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": false,
        "attlen": "",
        "attprecision": "",
        "attidentity": "a",
        "colconstype": "g",
        "genexpr": "dummy1 + dummy2",
        "attoptions": [],
        "seclabels": []
      },
      "expected_sql_file": "create_column_int_generated_with_existing_columns.sql",
      "expected_msql_file": "create_column_int_generated_with_existing_columns.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column (Integer/Numeric type) with Generated feature with columns",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 8,
        "name": "new_col_8_$%{}[]()&*^!@\"'`\\/#",
        "genexpr": "dummy1 - dummy2",
        "description": "Comment for alter",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "enterprisedb",
              "privileges": [
                {
                  "privilege_type": "a",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                },
                {
                  "privilege_type": "x",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_generated_with_existing_columns.sql",
      "expected_msql_file": "alter_column_generated_with_existing_columns.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column (Integer/Numeric type) with Generated feature with columns",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_8_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column with identity (Generated by default)",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_9_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for create",
        "cltype": "bigint",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attoptions": [],
        "seclabels": [],
        "attidentity": "d",
        "seqincrement": "1",
        "seqstart": "1",
        "seqmin": "1",
        "seqmax": "99999",
        "seqcache": "10",
        "seqcycle": true,
        "colconstype": "i"
      },
      "expected_sql_file": "create_column_int_identity_by_default.sql",
      "expected_msql_file": "create_column_int_identity_by_default.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column with identity (Generated by default)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 9,
        "name": "new_col_9_$%{}[]()&*^!@\"'`\\/#",
        "description": "Comment for alter",
        "seqincrement": "2",
        "seqmax": "200",
        "seqcache": "2",
        "seqcycle": true,
        "seqmin": "1"
      },
      "expected_sql_file": "alter_column_identity_by_default.sql",
      "expected_msql_file": "alter_column_identity_by_default.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column with drop identity (Generated by default)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 9,
        "colconstype": "n"
      },
      "expected_sql_file": "alter_column_drop_identity_by_default.sql",
      "expected_msql_file": "alter_column_drop_identity_by_default.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column Column with identity (Generated by default)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "new_col_9_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column with identity (BY DEFAULT) for combination of identity options & initiate START",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_6_$%{}[]()&*^!@\"'`\\/#",
        "cltype": "bigint",
        "attacl": [],
        "description": "demo comments",
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attidentity": "d",
        "seqincrement": "1",
        "seqstart": "1",
        "seqmin": "1",
        "seqmax": "10",
        "seqcache": "1",
        "seqcycle": true,
        "colconstype": "i",
        "attoptions": [],
        "seclabels": []
      },
      "expected_sql_file": "create_column_identity_for_restart_seq.sql",
      "expected_msql_file": "create_column_identity_for_restart_seq.msql"
    },
    {
      "type": "alter",
      "name": "Alter identity Column (BY DEFAULT) to ALWAYS & Update START",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnotnull": true,
        "attidentity": "a",
        "seqstart": 2,
        "seqcycle": false
      },
      "expected_sql_file": "alter_column_identity_for_restart_seq.sql",
      "expected_msql_file": "alter_column_identity_for_restart_seq.msql"
    },
    {
      "type": "alter",
      "name": "Alter identity Column (ALWAYS) for combination of identity options & Update START",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "attnum": 9,
        "attidentity": "a",
        "seqincrement": "3",
        "seqstart": "3",
        "seqmin": "3",
        "seqmax": "30",
        "seqcache": "3",
        "seqcycle": true
      },
      "expected_sql_file": "alter_column_identity_for_comb_start_seq.sql",
      "expected_msql_file": "alter_column_identity_for_comb_start_seq.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column with identity (ALWAYS)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "col_6_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column with text & default value",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col__1_$%{}[]()&*^!@\"'`\\/#",
        "cltype": "text",
        "attacl": [],
        "description": "test comment",
        "is_primary_key": false,
        "attnotnull": false,
        "attlen": "",
        "attprecision": "",
        "attidentity": "a",
        "colconstype": "n",
        "attoptions": [],
        "seclabels": [],
        "defval": "'xyz'"
      },
      "expected_sql_file": "create_column_text_with_default_value.sql",
      "expected_msql_file": "create_column_text_with_default_value.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column with text & update default value",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "name": "col__1_$%{}[]()&*^!@\"'`\\/#",
        "defval": "'changed default value'",
        "attacl": {
          "added": [
            {
              "grantee": "PUBLIC",
              "grantor": "<OWNER>",
              "privileges": [
                {
                  "privilege_type": "r",
                  "privilege": true,
                  "with_grant": false
                }
              ]
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_text_with_default_value.sql",
      "expected_msql_file": "alter_column_text_with_default_value.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column with identity (ALWAYS)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "col__1_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column with time with time zone & default value using function",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col__2_$%{}[]()&*^!@\"'`\\/#",
        "cltype": "time with time zone",
        "attacl": [],
        "description": "test comment",
        "min_val_attlen": 0,
        "max_val_attlen": 6,
        "is_primary_key": false,
        "attnotnull": false,
        "attlen": "4",
        "attprecision": null,
        "attidentity": "a",
        "colconstype": "n",
        "attoptions": [],
        "seclabels": [],
        "defval": "now()"
      },
      "expected_sql_file": "create_column_timestamp_with_default_value_using_function.sql",
      "expected_msql_file": "create_column_timestamp_with_default_value_using_function.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column with time with time zone & update length",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "name": "col__2_$%{}[]()&*^!@\"'`\\/#",
        "attlen": "6",
        "attnotnull": true,
        "description": "test comment modification"
      },
      "expected_sql_file": "alter_column_timestamp_with_default_value_using_function.sql",
      "expected_msql_file": "alter_column_timestamp_with_default_value_using_function.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column with identity (ALWAYS)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "col__2_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column with interger_array and options",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col__3_$%{}[]()&*^!@\"'`\\/#",
        "cltype": "integer[]",
        "attacl": [],
        "description": "comment",
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attidentity": "a",
        "colconstype": "n",
        "attoptions": [
          {
            "name": "n_distinct",
            "value": "1"
          }
        ],
        "seclabels": []
      },
      "expected_sql_file": "create_column_with_interger_array_and_options.sql",
      "expected_msql_file": "create_column_with_interger_array_and_options.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column with interger_array and options",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "name": "col__3_$%{}[]()&*^!@\"'`\\/#",
        "attoptions": {
          "changed": [
            {
              "name": "n_distinct",
              "value": "2"
            }
          ]
        }
      },
      "expected_sql_file": "alter_column_with_interger_array_and_options.sql",
      "expected_msql_file": "alter_column_with_interger_array_and_options.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column with identity (ALWAYS)",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "col__3_$%{}[]()&*^!@\"'`\\/#"
      }
    },
    {
      "type": "create",
      "name": "Create Column with compression",
      "endpoint": "NODE-column.obj",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql",
      "data": {
        "name": "col_comp_$%{}[]()&*^!@\"'`\\/#",
        "cltype": "character varying",
        "attacl": [],
        "is_primary_key": false,
        "attnotnull": true,
        "attlen": "",
        "attprecision": "",
        "attcompression": "pglz",
        "attoptions": [],
        "seclabels": [],
        "defval": "1"
      },
      "expected_sql_file": "create_column_comp.sql",
      "expected_msql_file": "create_column_comp.msql"
    },
    {
      "type": "alter",
      "name": "Alter Column compression type",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "msql_endpoint": "NODE-column.msql_id",
      "data": {
        "name": "col_comp_$%{}[]()&*^!@\"'`\\/#",
        "attcompression": "lz4"
      },
      "expected_sql_file": "alter_column_compression.sql",
      "expected_msql_file": "alter_column_compression.msql"
    },
    {
      "type": "delete",
      "name": "Drop Column with compression",
      "endpoint": "NODE-column.obj_id",
      "sql_endpoint": "NODE-column.sql_id",
      "data": {
        "name": "col_comp_$%{}[]()&*^!@\"'`\\/#"
      }
    }
  ]
}
