@Override
  public InterpreterResult interpret(String st, InterpreterContext context) {
    return helper.interpret(session, st, context);
  }
@Test
  void should_execute_bound_statement() {
    // Given
    String queries = "@prepare[users_insert]=INSERT INTO zeppelin.users" +
        "(login,firstname,lastname,addresses,location)" +
        "VALUES(:login,:fn,:ln,:addresses,:loc)\n" +
        "@bind[users_insert]='jdoe','John','DOE'," +
        "{street_number: 3, street_name: 'Beverly Hills Bld', zip_code: 90209," +
        " country: 'USA', extra_info: ['Right on the hills','Next to the post box']," +
        " phone_numbers: {'home': 2016778524, 'office': 2015790847}}," +
        "('USA', 90209, 'Beverly Hills')\n" +
        "SELECT * FROM zeppelin.users WHERE login='jdoe';";
    // When
    final InterpreterResult actual = interpreter.interpret(queries, intrContext);

    // Then
    assertEquals(Code.SUCCESS, actual.code());
    assertEquals("login\taddresses\tage\tdeceased\tfirstname\tlast_update\tlastname\tlocation\n" +
        "jdoe\t" +
        "{street_number: 3, street_name: Beverly Hills Bld, zip_code: 90209, " +
        "country: USA, extra_info: [Right on the hills, Next to the post box], " +
        "phone_numbers: {home: 2016778524, office: 2015790847}}\tnull\t" +
        "null\t" +
        "John\t" +
        "null\t" +
        "DOE\t" +
        "(USA, 90209, Beverly Hills)\n", actual.message().get(0).getData());
  }