mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-28 10:52:03 +08:00
Previously, interactive execution and --exec used two models for how a failed command would impact other commands in the execution. As an example, consider: fdb> set foo bar ; set bar f\00 ; set baz foo In interactive mode, this had the effect of {foo=bar, baz=foo}. In --exec mode, this had the effect of {foo=bar}. With this change, both now have the effect of {foo=bar}. This is achieved by prefixing the last parsed command, which is the one that had the error, with a fake "parse_error" token. The execution of this would now look like: ERROR: malformed escape sequence >>> set foo bar ERROR: Command failed to completely parse. ERROR: Not running partial or malformed command: set bar Which indicates how much execution occurred and where it halted, identically in both modes of execution.