From: SVN by r. <sv...@ca...> - 2008-02-27 15:30:07
|
Author: roy Date: 2008-02-27 16:29:54 +0100 (Wed, 27 Feb 2008) New Revision: 242 Modified: src/main/java/nl/improved/sqlclient/SQLShell.java Log: fix queries Modified: src/main/java/nl/improved/sqlclient/SQLShell.java =================================================================== --- src/main/java/nl/improved/sqlclient/SQLShell.java 2008-02-27 09:49:14 UTC (rev 241) +++ src/main/java/nl/improved/sqlclient/SQLShell.java 2008-02-27 15:29:54 UTC (rev 242) @@ -128,6 +128,7 @@ commands.register("EXIT[\\s]*", new QuitCommand("exit")); //commands.register("\\\\Q[\\s]*", new QuitCommand("\\q")); commands.register("@.*", new ExecuteBatchCommand()); + commands.register("(SELECT|UPDATE|ALTER|INSERT|DELETE).*;[\\s]*", new QueryCommand()); // keys actionKeys.put(Integer.toString(InputChar.KEY_LEFT), new KeyAction() { @@ -736,8 +737,11 @@ } return true; } - final Command command = createCommand(commandString); + Command command = createCommand(commandString); // first try to find a match without ; if (command == null) { + command = createCommand(sqlCommand.getUntrimmedCommandString()); // then with ; for sql statements... + } + if (command == null) { return false; } // make sure only one command is run at once @@ -748,6 +752,7 @@ Logger.getLogger(SQLShell.class.getName()).log(Level.SEVERE, null, ex); } } + output(commandString+"\n"); if (direct || !command.backgroundProcessSupported()) { output(command.execute(sqlCommand)); } else { @@ -766,7 +771,7 @@ if (command != null) { return command; } - if (commandString.endsWith(";")) { + if (commandString.matches(".*;[\\s]*")) { return new QueryCommand(); // TODO is this ever reached??? } return null; @@ -1381,7 +1386,7 @@ // Exec cmd String commandString = cmd.toString(); currentCommand = createCommand(commandString); - output(commandString); + output(commandString+"\n"); output(currentCommand.execute(new InputCommand(commandString))); cmd=new StringBuilder(); } @@ -1498,7 +1503,6 @@ execute(); } finally { showPrompt = true; - try { Thread.sleep(500);} catch(InterruptedException e) {} // hack paint(); } } |