While pouring through the source,I found a solution! Heres a basic way to read most mysql dumps using the sql task's src: whether it be triggers,storedprocs,fields that contain comments...
-put all triggers and stored procedures in their own file. and use the task's delimiter attribute (requires you delete the DELIMTER statement, which means 1 delim per file) -for files that barf because the comment sequence is within a string eg insert into properties (value) values("<!-- -->"); use the keepformat attribute. Although the description in the docs isnt so good, i got the idea from looking at the code of SQLExec.java This should be good. The problem is that the <sql> task does a lot of parsing on the sql before it sends it off to the database specific connections. On 10/24/06, Scot P. Floess <[EMAIL PROTECTED]> wrote:
Hunter: OK, I see what you are saying now... Sorry :( Apparently I wasn't paying attention to what you were saying... Its odd to me the implementation isn't taking the character stream verbatim and hading through to JDBC - thus allowing JDBC to parse and do the right thing...so I guess Ant is parsing (perhaps partially) and then the JDBC layer gets to parse too? The problem I had (again this was probably 3 years ago) was that for any given line, the line was assumed to contain an entire SQL statement...if the SQL statement spanned multiple lines, a continuation character had to be included in the file. Scot Hunter Peress wrote: >> It is treating each line as ONE sql statement. By using the -line >> continuation- character, it should fix the problem - namely the \ >> character. > > > So? I gave 2 statements each on its own line. the problem is that ant > thinks > the > string inside the first quote is an actual sql comment > > the problem is that the ant sql task lacks some parsing: > from SQLExec.java > > // 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"); > } > } > > i'm going to hack to make it only parse comments that arent within > quotes. > > > Placing SQL statements in a file makes perfect sense...perhaps he is >> trying to put database creation, or population information there? > > > > > > > I've >> done it before and I saw no reason why one wouldn't want to do that... >> >> And, this isn't an issue of ctrl-M characters... I had this problem on >> a Linux system using a ViM created file under Linux... Ant is treating >> the newline as a delimiter for the SQL statement. >> >> Martin Gainty wrote: >> > Hunter >> > >> > If Im not mistaken I think you just answered your own question >> > so when you put all the SQL statements together on one line then >> ant can >> parse the SQL >> > if you break the SQL apart with some varying number of unknown >> delimiters ant cannot understand your file contents >> > if you absolutely must use a file(I dont know why you would) >> > then tell ant what the the SQL statement delimiters are by specifying >> your own delimiter within the sql task >> > >> > Also be wary that Unix does not like nasty ctl-m ^M characters that >> dos >> editors toss in as newline endings >> > vi -b on the sql file will at least show you the whitespace characters >> so you can delete them >> > >> > Martin- >> > This e-mail communication and any attachments may contain confidential >> and privileged information for the use of the >> > designated recipients named above. If you are not the intended >> recipient, you are hereby notified that you have received >> > this communication in error and that any review, disclosure, >> dissemination, distribution or copying of it or its >> > contents >> > ----- Original Message ----- >> > From: "Hunter Peress" <[EMAIL PROTECTED]> >> > To: "Ant Users List" <user@ant.apache.org>; "Martin Gainty" < >> [EMAIL PROTECTED]> >> > Sent: Tuesday, October 24, 2006 8:15 PM >> > Subject: Example: error loading a mysqldump file >> > >> > >> > >> >> Ant file: >> >> <sql >> >> >> classpath="../lib/mysql-connector-java-3.1.12-bin.jar >> " >> >> driver="com.mysql.jdbc.Driver" >> >> url="jdbc:mysql://localhost:3306/" >> >> userid="" >> >> password="" >> >> print="yes" >> >> src="wtf.sql" >> >> > >> >> use what; >> >> </sql> >> >> >> >> wtf.sql: >> >> insert into properties (value) values("<!-- -->"); >> >> insert into properties (value) values("Hi"); >> >> >> >> Ok so if in mysql console you source wtf.sql there are no >> problems, its >> >> valid mysql. But ant bombs on it. >> >> Ant can handle each line ,but put them together in a file and its >> bad. >> >> >> >> >> >> On 10/24/06, Martin Gainty <[EMAIL PROTECTED]> wrote: >> >> >> >>> I know if I edit on windo and port to nix I will have <CR><LF> >> appended at >> >>> end of each line >> >>> for small files >> >>> vi -b >> >>> will show you the extra CR and you can easily delete the CR (which >> show up >> >>> as ^M) chars >> >>> >> >>> for comprehensive treatment of entire files to unix run the >> dostounix >> >>> utility >> >>> check out this link from the friendly folk from Santa Cruz for >> details >> >>> http://people.ucsc.edu/~chengyus/CE12L/DOSTOUNIX.htm >> >>> >> >>> Martin -- >> >>> >> >>> This e-mail communication and any attachments may contain >> confidential >> and >> >>> privileged information for the use of the >> >>> designated recipients named above. If you are not the intended >> recipient, >> >>> you are hereby notified that you have received >> >>> this communication in error and that any review, disclosure, >> >>> dissemination, distribution or copying of it or its >> >>> contents >> >>> ----- Original Message ----- >> >>> From: "Scot P. Floess" <[EMAIL PROTECTED]> >> >>> To: "Ant Users List" <user@ant.apache.org> >> >>> Sent: Tuesday, October 24, 2006 10:03 AM >> >>> Subject: Re: error loading a mysqldump file >> >>> >> >>> >> >>> >> >>>> Can you elaborate more on the error? >> >>>> >> >>>> Some years ago I was using the sql task and had a file full of SQL >> >>>> statements... When I tried to use the sql task I was getting >> errors >> as >> >>>> well. The solution, if memory serves, is that I had to use a \ >> >>>> character at the end of each line until SQL termination. So, if I >> had >> >>>> something like: >> >>>> >> >>>> create table foo >> >>>> ( >> >>>> bar as int >> >>>> ); >> >>>> >> >>>> I had to do this kind of thing: >> >>>> >> >>>> create table foo \ >> >>>> ( \ >> >>>> bar as int \ >> >>>> ); >> >>>> >> >>>> The problem (again if I can remember correctly) was that each line >> >>>> (meaning new line/carriage return) was being interpreted as the >> "whole" >> >>>> sql statement and submitted. >> >>>> Hunter Peress wrote: >> >>>> >> >>>>> using the sql task's src attribute i source a mysqldump file >> and it >> >>>>> errors. >> >>>>> mysql can source the file with no problems. >> >>>>> but in ant I source it and theres a syntax error. >> >>>>> There is no delimiter being set in the source. >> >>>>> also if take individually two insert statement and source those it >> >>>>> >> >>> works. >> >>> >> >>>>> but i combine them and i get a syntax error. >> >>>>> >> >>>>> in the mysqldump the text fields are xml documents so they have >> almost >> >>>>> every >> >>>>> imagineable character. >> >>>>> >> >>>>> im using standard utf8 encoding. any ideas? >> >>>>> >> >>>>> >> >>>> -- >> >>>> Scot P. Floess >> >>>> 27 Lake Royale >> >>>> Louisburg, NC 27549 >> >>>> >> >>>> 252-478-8087 (Home) >> >>>> 919-754-4592 (Work) >> >>>> >> >>>> Chief Architect JPlate http://sourceforge.net/projects/jplate >> >>>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim >> >>>> >> >>>> >> >>>> >> --------------------------------------------------------------------- >> >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >>>> For additional commands, e-mail: [EMAIL PROTECTED] >> >>>> >> >>>> >> >>>> >> > > >> >> -- >> Scot P. Floess >> 27 Lake Royale >> Louisburg, NC 27549 >> >> 252-478-8087 (Home) >> 919-754-4592 (Work) >> >> Chief Architect JPlate http://sourceforge.net/projects/jplate >> Chief Architect JavaPIM http://sourceforge.net/projects/javapim >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > -- Scot P. Floess 27 Lake Royale Louisburg, NC 27549 252-478-8087 (Home) 919-754-4592 (Work) Chief Architect JPlate http://sourceforge.net/projects/jplate Chief Architect JavaPIM http://sourceforge.net/projects/javapim --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]