You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2012/01/03 18:22:22 UTC
svn commit: r1226881 -
/incubator/sqoop/trunk/src/java/org/apache/sqoop/lib/FieldFormatter.java
Author: jarcec
Date: Tue Jan 3 17:22:22 2012
New Revision: 1226881
URL: http://svn.apache.org/viewvc?rev=1226881&view=rev
Log:
SQOOP-411. Precompile Pattern for replacement of Hive delimiters
(Lars Francke via Jarek Jarcec Cecho)
Modified:
incubator/sqoop/trunk/src/java/org/apache/sqoop/lib/FieldFormatter.java
Modified: incubator/sqoop/trunk/src/java/org/apache/sqoop/lib/FieldFormatter.java
URL: http://svn.apache.org/viewvc/incubator/sqoop/trunk/src/java/org/apache/sqoop/lib/FieldFormatter.java?rev=1226881&r1=1226880&r2=1226881&view=diff
==============================================================================
--- incubator/sqoop/trunk/src/java/org/apache/sqoop/lib/FieldFormatter.java (original)
+++ incubator/sqoop/trunk/src/java/org/apache/sqoop/lib/FieldFormatter.java Tue Jan 3 17:22:22 2012
@@ -17,13 +17,21 @@
*/
package org.apache.sqoop.lib;
+import java.util.regex.Pattern;
+
/**
* Static helper class that will help format data with quotes and escape chars.
*/
public final class FieldFormatter {
+ private static final Pattern REPLACE_PATTERN = Pattern.compile("\\n|\\r|\01");
+
/**
- * only pass fields that are strings when --hive-drop-delims option is on.
+ * This drops all default Hive delimiters from the string and passes it on.
+ *
+ * These delimiters are \n, \r and \01. This method is invoked when the
+ * command line option {@code --hive-drop-delims} is provided.
+ *
* @param str
* @param delimiters
* @return
@@ -42,7 +50,7 @@ public final class FieldFormatter {
*/
public static String hiveStringReplaceDelims(String str, String replacement,
com.cloudera.sqoop.lib.DelimiterSet delimiters) {
- String droppedDelims = str.replaceAll("\\n|\\r|\01", replacement);
+ String droppedDelims = REPLACE_PATTERN.matcher(str).replaceAll(replacement);
return escapeAndEnclose(droppedDelims, delimiters);
}