ASF Bugzilla – Attachment 13499 Details for
Bug 27739
sql insert statement fails on '--' strings
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Junit test
SQLExecTest.java (text/plain), 4.51 KB, created by
Kev Jackson
on 2004-11-19 07:46:31 UTC
(
hide
)
Description:
Junit test
Filename:
MIME Type:
Creator:
Kev Jackson
Created:
2004-11-19 07:46:31 UTC
Size:
4.51 KB
patch
obsolete
>/* > * Created on Nov 19, 2004 > */ >package org.apache.tools.ant.taskdefs; > >import java.io.BufferedReader; >import java.io.IOException; >import java.io.Reader; >import java.io.PrintStream; >import java.io.StringReader; >import java.sql.SQLException; >import java.util.StringTokenizer; >import org.apache.tools.ant.Project; > >import org.apache.tools.ant.taskdefs.SQLExec.DelimiterType; > >import junit.framework.Test; >import junit.framework.TestCase; >import junit.framework.TestSuite; > >/** > * @author it-kevin > * > */ >public class SQLExecTest extends TestCase { > > private boolean keepformat = false; > private String delimiterType = DelimiterType.NORMAL; > private String delimiter = ";"; > > private StringReader srOne; > private StringReader srTwo; > private PrintStream out; > private String sqlToRun = "SELECT '--', '--' FROM USERS; --comment"; > private String testSQL = "INSERT INTO mandator (mandator_id, mandator_name, description) VALUES (0,'--','');"; > > /* > * @see TestCase#setUp() > */ > protected void setUp() throws Exception { > super.setUp(); > srOne = new StringReader(sqlToRun); > srTwo = new StringReader(testSQL); > > } > > /* > * @see TestCase#tearDown() > */ > protected void tearDown() throws Exception { > super.tearDown(); > } > > protected String runStatementsOrig(Reader r) > throws SQLException, IOException { > StringBuffer sql = new StringBuffer(); > String line; > BufferedReader in = new BufferedReader(r); > line = in.readLine(); > if (!keepformat) { > line = line.trim(); > } > line = new Project().replaceProperties(line); > if (!keepformat) { > if (line.startsWith("//")) { > return "//"; > } > if (line.startsWith("--")) { > return "--"; > } > StringTokenizer st = new StringTokenizer(line); > if (st.hasMoreTokens()) { > String token = st.nextToken(); > if ("REM".equalsIgnoreCase(token)) { > return "rem"; > } > } > } > > if (!keepformat) { > sql.append(" " + line); > } else { > sql.append("\n" + line); > } > > // SQL defines "--" as a comment to EOL > // and in Oracle it may contain a hint > // so we cannot just remove it, instead we must end it > if (!keepformat) { > if (line.indexOf("--") >= 0) { > sql.append("\n"); > } > } > return sql.toString(); > } > > protected String runStatementsNew(Reader r) > throws SQLException, IOException { > StringBuffer sql = new StringBuffer(); > String line; > BufferedReader in = new BufferedReader(r); > line = in.readLine(); > if (!keepformat) { > line = line.trim(); > } > line = new Project().replaceProperties(line); > if (!keepformat) { > if (line.startsWith("//")) { > return "//"; > } > if (line.startsWith("--")) { > return "--"; > } > StringTokenizer st = new StringTokenizer(line); > if (st.hasMoreTokens()) { > String token = st.nextToken(); > if ("REM".equalsIgnoreCase(token)) { > return "rem"; > } > } > } > > if (!keepformat) { > sql.append(" " + line); > } else { > sql.append("\n" + line); > } > > // SQL defines "--" as a comment to EOL > // and in Oracle it may contain a hint > // so we cannot just remove it, instead we must end it > if (!keepformat) { > if (line.indexOf("--") >= 0) { > sql.append("\n"); > } > } > return sql.toString(); > } > /** > * Constructor for SQLExecTest. > * @param arg0 > */ > public SQLExecTest(String arg0) { > super(arg0); > } > > > public static Test suite() { > TestSuite suite = new TestSuite(); > suite.addTest(new SQLExecTest("testRunStatements")); > return suite; > } > > public void testRunStatements() { > try { > assertEquals(" "+testSQL+"\n", runStatementsNew(srTwo)); > } catch (Exception e) { > e.printStackTrace(); > fail(); > } > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 27739
:
12300
| 13499