Beta Notes
Other
Dual Monitor Support:
You can now use Toad in either its standard MDI (Multiple Document Interface) mode or in SDI (Single Document Interface) mode, similar to Photoshop, older versions of Delphi, etc. To switch between the two, simply go into Toad’s options to the General page and select the application style you wish to use.
In addition, while working in MDI mode, you can selectively pop out individual windows in order to move them between different monitors. To do this, simply click on the system menu for the MDI child form and select “Pop-out Window”. To pop the window back into MDI mode, click the system menu for the popped out window and select “Pop-in Window”. By default, child windows will still open as “popped-in” when Toad is operating in MDI mode.
Note: connection border colors cannot be drawn around forms operating in either SDI or “popped-out” mode; however, the colored status bar will still be shown.
Editor - Code Assist
Auto Replace now supports escape sequences for tab (\t), carriage return (\r), and line feed (\n) in the replacement string. Single slashes should be escaped using double slashes (\).
Auto Replace settings are now stored in EditorAutoReplace.xml and removed from the old location in Toad.ini.
Formatting/Parsing (QP5)
General
Fix: Possible stack overflow on very deeply nested code. This will now be handled gracefully.
Code Analysis
Fix: Rule 4001 (“Avoid using GOTO out of a loop.”) did not check that the GOTO actually goes out of the loop.
New: Rule 5903 (“All queries (dynamic and fixed) must leverage bind variables for performance, security, and maintainability purposes.”) will not flag simple comparisons with equal left and ride side such as 1 = 1 and 7 < 7 anymore.
New: Rule 6748 (“Consider writing IF THEN CONTINUE as CONTINUE WHEN.”)
Fix: Rule 6806 (“Use native execution for PL/SQL that is compute intensive and has little SQL.”) : This rule has been removed because when it raises it will raise forever. That nagging behavior cannot be stopped by compiling natively because at this time Code Analysis cannot get to know the actual mode of compilation.
Fix: Rule 2102 (“Avoid comments that are not explanatory within the body of the code.”) : This rule has been removed because the criteria are too vague, too subjective.
Fix: Rule 4002 (“Avoid using a backward GOTO.”)_ was rewritten to take advantage of QP5 XPath.
Fix: Rule 5804 (“Ensure SELECT COUNT( * ) is being used to check the number of rows and not merely the existence of rows.”) was rewritten to take advantage of QP5 XPath.
Fix: Rule 2831 (“Use PLS_INTEGER instead of INTEGER or equivalent subtypes.”) no longer raises for CREATE TYPE.
Fix: Rule 4503 (“Calls to DBMS_ADDM require optional OEM packs for DIAGNOSTIC + TUNING.”) : DBMS_ADM renamed to DBMS_ADDM wherevever applicable.
Fix: Rule 4204 (“Avoid IF when assigning values to boolean variables.”) : Example code fixed.
Fix: Rule 4537 (“Consider using a CONTINUE statement to eliminate a backward GOTO to the beginning of the loop.”) was renamed from “Utilize the CONTINUE statement rather than a GOTO or an extra level of conditional logic within a looping construct”.
Parser
Fix: MERGE statement: A data-source in the USING clause can now be of the form {{identifier.identifier@dblink}}.
New: Function {{DBMS_XMLGEN.GETXMLTYPE(query)}} : If the parameter is a simple string a syntax check will be done on that string.
Fix: Support for SQLPlus multi-line comments following the statement at the right.
Example:{color:#000000}@myproc / some comment*/{color}
!qp5/…/pencil.gif|width=16,height=16! In SqlPlus the {{/}} must be followed by a space
Fix: CREATE TABLESPACE: {{LOGGING}} could not be used together with {{FORCE LOGGING}}.
Formatter
Fix: Since version 5.311 a end-of-line comment was positioned one space further to the right, leaving two spaces between the statement and the comment. This has be brought back to one space.
New: In a stacked named parameter list, whenever a parameter with a large values wraps its value to a next line, it will no longer trigger all other parameters to do so. In addition, text folds better on low right margins.
Example:
p_partno => r.partno, p_synonym_of => r.synonym_of, p_value_lines => COALESCE (r.value_lines, 0) + COALESCE (r.repl_value_lines, 0), Former output (5.307):{color:#000000} p_partno => r.partno, p_synonym_of => r.synonym_of, p_value_lines => COALESCE (r.value_lines, 0) + COALESCE (r.repl_value_lines, 0), {color}New output:{color:#000000} p_partno => r.partno, p_synonym_of => r.synonym_of, p_value_lines => COALESCE (r.value_lines, 0) + COALESCE (r.repl_value_lines, 0),{color}
New: Adding alignment to “parameter = value” lists
New: Expressions between parentheses are formatter slightly differently, more closely obeying the Expression and Parentheses formatter options. This is due to required internal formatter refactoring. You can mimic to original setting by selecting formatter options List Arrangements -> Expressions -> Parentheses options 1, 2 or 3 combined with On Overflow: None .