{
  "scenarios": [
    {
      "type": "create",
      "name": "Create procedure",
      "endpoint": "NODE-procedure.obj",
      "sql_endpoint": "NODE-procedure.sql_id",
      "data": {
        "name": "Proc1_$%{}[]()&*^!@\"'`\\/#",
        "acl": [],
        "arguments": [{"argtype": "integer", "argmode": "IN", "argname": "i1", "argdefval": ""}],
        "funcowner": "postgres",
        "lanname": "plpgsql",
        "options": [],
        "pronamespace": 2200,
        "prosrc": "begin\nselect 1;\nend;",
        "seclabels": [],
        "variables": [],
        "schema": "public",
        "provolatile": null,
        "proisstrict": false,
        "proparallel": null,
        "procost": null,
        "proleakproof": false,
        "probin": "$libdir/"
      },
      "expected_sql_file": "create_procedure.sql"
    }, {
      "type": "alter",
      "name": "Alter procedure comment",
      "endpoint": "NODE-procedure.obj_id",
      "sql_endpoint": "NODE-procedure.sql_id",
      "data": {
        "description": "some comment"
      },
      "expected_sql_file": "alter_proc_comment.sql",
      "expected_msql_file": "alter_proc_comment_msql.sql"
    }, {
      "type": "alter",
      "name": "Alter procedure param",
      "endpoint": "NODE-procedure.obj_id",
      "sql_endpoint": "NODE-procedure.sql_id",
      "data": {
        "variables": {
          "added": [{"name": "application_name", "value": "pgadmin"}]
        }
      },
      "expected_sql_file": "alter_proc_param.sql",
      "expected_msql_file": "alter_proc_param_msql.sql"
    }, {
      "type": "delete",
      "name": "Drop procedure",
      "endpoint": "NODE-procedure.delete_id",
      "data": {
      }
    }
  ]
}
