Author: mbenson
Date: Wed Jun 27 14:02:43 2007
New Revision: 551323
URL: http://svn.apache.org/viewvc?view=rev&rev=551323
Log:
"rawblobs" attribute added to SQL task.
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/docs/manual/CoreTasks/sql.html
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
Modified: ant/core/trunk/WHATSNEW
URL:
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=551323&r1=551322&r2=551323
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Wed Jun 27 14:02:43 2007
@@ -160,6 +160,8 @@
* Default text added to macrodef. Bugzilla report 42301.
+* "rawblobs" attribute added to SQL task.
+
Changes from Ant 1.6.5 to Ant 1.7.0
===================================
Modified: ant/core/trunk/docs/manual/CoreTasks/sql.html
URL:
http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTasks/sql.html?view=diff&rev=551323&r1=551322&r2=551323
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/sql.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/sql.html Wed Jun 27 14:02:43 2007
@@ -188,6 +188,13 @@
<td width="10%" valign="top">No (default=true)</td>
</tr>
+<tr>
+ <td width="12%" valign="top">rawblobs</td>
+ <td width="78%" valign="top">If true, will write raw streams rather than hex
encoding when
+ printing BLOB results. <em>Since Ant 1.7.1</em>.</td>
+ <td width="10%" valign="top">No, default <em>false</em></td>
+</tr>
+
</table>
<h3>Parameters specified as nested elements</h3>
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java?view=diff&rev=551323&r1=551322&r2=551323
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java Wed Jun
27 14:02:43 2007
@@ -49,6 +49,7 @@
import java.sql.SQLWarning;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
+import java.sql.Types;
/**
* Executes a series of SQL statements on a database using JDBC.
@@ -192,6 +193,12 @@
private boolean expandProperties = true;
/**
+ * should we print raw BLOB data?
+ * @since Ant 1.7.1
+ */
+ private boolean rawBlobs;
+
+ /**
* Set the name of the SQL file to be run.
* Required unless statements are enclosed in the build file
* @param srcFile the file containing the SQL command.
@@ -373,6 +380,15 @@
}
/**
+ * Set whether to print raw BLOBs rather than their string (hex)
representations.
+ * @param rawBlobs whether to print raw BLOBs.
+ * @since Ant 1.7.1
+ */
+ public void setRawBlobs(boolean rawBlobs) {
+ this.rawBlobs = rawBlobs;
+ }
+
+ /**
* Load the sql file and then execute it
* @throws BuildException on error.
*/
@@ -634,16 +650,25 @@
out.println();
}
while (rs.next()) {
- out.print(rs.getString(1));
+ printValue(rs, 1, out);
for (int col = 2; col <= columnCount; col++) {
out.write(',');
- out.print(rs.getString(col));
+ printValue(rs, col, out);
}
out.println();
}
}
}
out.println();
+ }
+
+ private void printValue(ResultSet rs, int col, PrintStream out)
+ throws SQLException {
+ if (rawBlobs && rs.getMetaData().getColumnType(col) == Types.BLOB) {
+ new StreamPumper(rs.getBlob(col).getBinaryStream(), out).run();
+ } else {
+ out.print(rs.getString(col));
+ }
}
/*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]