You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/03/02 22:14:41 UTC
svn commit: r1451943 - in
/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql: exec/
parse/ udf/ptf/
Author: hashutosh
Date: Sat Mar 2 21:14:40 2013
New Revision: 1451943
URL: http://svn.apache.org/r1451943
Log:
HIVE-4093 : Remove sprintf from PTFTranslator and use String.format() (Brock Noland via Ashutosh Chauhan)
Modified:
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFPersistence.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFUtils.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java
hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFPersistence.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFPersistence.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFPersistence.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFPersistence.java Sat Mar 2 21:14:40 2013
@@ -139,7 +139,7 @@ public class PTFPersistence {
j = j << 1;
if ( j > 2 * currentSize )
{
- throw new HiveException(PTFUtils.sprintf("index invalid %d", i));
+ throw new HiveException(String.format("index invalid %d", i));
}
return j;
}
@@ -667,7 +667,7 @@ public class PTFPersistence {
*/
if ( !directory.isDirectory())
{
- throw new IOException(PTFUtils.sprintf("Not a directory: %s", directory));
+ throw new IOException(String.format("Not a directory: %s", directory));
}
// Symbolic links will have different canonical and absolute paths
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFUtils.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFUtils.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFUtils.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFUtils.java Sat Mar 2 21:14:40 2013
@@ -29,10 +29,8 @@ import java.beans.PropertyDescriptor;
import java.beans.Statement;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
-import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.PrintStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -48,13 +46,6 @@ import org.apache.hadoop.hive.serde2.typ
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
public class PTFUtils {
- public static String sprintf(String format, Object... values)
- {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- PrintStream out = new PrintStream(outputStream);
- out.printf(format, values);
- return outputStream.toString();
- }
public static String toString(List<?> col)
{
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java Sat Mar 2 21:14:40 2013
@@ -312,7 +312,7 @@ public class PTFInvocationSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("partitionColumns=%s",PTFUtils.toString(expressions));
+ return String.format("partitionColumns=%s",PTFUtils.toString(expressions));
}
}
@@ -445,7 +445,7 @@ public class PTFInvocationSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("orderColumns=%s",PTFUtils.toString(expressions));
+ return String.format("orderColumns=%s",PTFUtils.toString(expressions));
}
}
@@ -508,7 +508,7 @@ public class PTFInvocationSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("%s %s", super.toString(), order);
+ return String.format("%s %s", super.toString(), order);
}
}
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java Sat Mar 2 21:14:40 2013
@@ -18,8 +18,6 @@
package org.apache.hadoop.hive.ql.parse;
-import static org.apache.hadoop.hive.ql.exec.PTFUtils.sprintf;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -154,7 +152,7 @@ public class PTFTranslator {
WindowingTableFunctionResolver tFn = (WindowingTableFunctionResolver)
FunctionRegistry.getTableFunctionResolver(FunctionRegistry.WINDOWING_TABLE_FUNCTION);
if (tFn == null) {
- throw new SemanticException(sprintf("INternal Error: Unknown Table Function %s",
+ throw new SemanticException(String.format("INternal Error: Unknown Table Function %s",
FunctionRegistry.WINDOWING_TABLE_FUNCTION));
}
wdwTFnDef.setName(FunctionRegistry.WINDOWING_TABLE_FUNCTION);
@@ -336,7 +334,7 @@ public class PTFTranslator {
throws SemanticException {
TableFunctionResolver tFn = FunctionRegistry.getTableFunctionResolver(spec.getName());
if (tFn == null) {
- throw new SemanticException(sprintf("Unknown Table Function %s",
+ throw new SemanticException(String.format("Unknown Table Function %s",
spec.getName()));
}
PartitionedTableFunctionDef def = new PartitionedTableFunctionDef();
@@ -453,7 +451,7 @@ public class PTFTranslator {
WindowFrameDef wdwFrame = translate(spec.getName(), inpShape, wdwSpec);
if (!wFnInfo.isSupportsWindow() && wdwFrame != null)
{
- throw new SemanticException(sprintf("Function %s doesn't support windowing",
+ throw new SemanticException(String.format("Function %s doesn't support windowing",
desc));
}
def.setWindowFrame(wdwFrame);
@@ -509,7 +507,7 @@ public class PTFTranslator {
throw new SemanticException(he);
}
PTFTranslator.validateComparable(expDef.getOI(),
- sprintf("Partition Expression %s is not a comparable expression", pExpr.getExpression().toStringTree()));
+ String.format("Partition Expression %s is not a comparable expression", pExpr.getExpression().toStringTree()));
return expDef;
}
@@ -526,8 +524,8 @@ public class PTFTranslator {
}
if (partitionDef == null) {
- throw new SemanticException(sprintf(
- "Cannot have an Order spec w/o a Partition spec", spec));
+ throw new SemanticException(String.format(
+ "Cannot have an Order spec (%s) w/o a Partition spec", spec));
}
OrderDef def = new OrderDef();
@@ -560,7 +558,7 @@ public class PTFTranslator {
if (numOfPartColumns != 0 && numOfPartColumns != partExprs.size())
{
throw new SemanticException(
- sprintf(
+ String.format(
"all partition columns must be in order clause(%s) or none should be specified",
spec));
}
@@ -597,7 +595,7 @@ public class PTFTranslator {
throw new SemanticException(he);
}
PTFTranslator.validateComparable(oexpDef.getOI(),
- sprintf("Partition Expression %s is not a comparable expression",
+ String.format("Partition Expression %s is not a comparable expression",
oExpr.getExpression().toStringTree()));
return oexpDef;
}
@@ -626,7 +624,7 @@ public class PTFTranslator {
int cmp = s.compareTo(e);
if (cmp > 0)
{
- throw new SemanticException(sprintf(
+ throw new SemanticException(String.format(
"Window range invalid, start boundary is greater than end boundary: %s", spec));
}
@@ -700,12 +698,12 @@ public class PTFTranslator {
{
if ( visited.contains(sourceId)) {
visited.add(sourceId);
- throw new SemanticException(sprintf("Cycle in Window references %s", visited));
+ throw new SemanticException(String.format("Cycle in Window references %s", visited));
}
WindowSpec source = windowingSpec.getWindowSpecs().get(sourceId);
if (source == null || source.equals(dest))
{
- throw new SemanticException(sprintf("Window Spec %s refers to an unknown source " ,
+ throw new SemanticException(String.format("Window Spec %s refers to an unknown source " ,
dest));
}
@@ -755,7 +753,7 @@ public class PTFTranslator {
break;
default:
throw new SemanticException(
- sprintf("Primitve type %s not supported in Value Boundary expression",
+ String.format("Primitve type %s not supported in Value Boundary expression",
pC));
}
@@ -769,14 +767,14 @@ public class PTFTranslator {
if (!PTFTranslator.isCompatible(tPart, fPart))
{
throw new SemanticException(
- sprintf("Window Function '%s' has an incompatible partition clause", wFnName));
+ String.format("Window Function '%s' has an incompatible partition clause", wFnName));
}
OrderDef tOrder = ptfDesc.getFuncDef().getOrder();
if (!PTFTranslator.isCompatible(tOrder, fOrder))
{
throw new SemanticException(
- sprintf("Window Function '%s' has an incompatible order clause", wFnName));
+ String.format("Window Function '%s' has an incompatible order clause", wFnName));
}
}
@@ -869,9 +867,17 @@ public class PTFTranslator {
}
if (numOfPartColumns != 0 && numOfPartColumns != partCols.size()) {
+ List<String> partitionColumnNames = new ArrayList<String>();
+ for(PartitionExpression partitionExpression : partCols) {
+ ASTNode column = partitionExpression.getExpression();
+ if(column != null && column.getChildCount() > 0) {
+ partitionColumnNames.add(column.getChild(0).getText());
+ }
+ }
throw new SemanticException(
- sprintf(
- "all partition columns must be in order clause(%s) or none should be specified"));
+ String.format(
+ "all partition columns %s must be in order clause or none should be specified",
+ partitionColumnNames.toString()));
}
ArrayList<OrderExpression> combinedOrdExprs = new ArrayList<OrderExpression>();
if (numOfPartColumns == 0)
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Sat Mar 2 21:14:40 2013
@@ -74,7 +74,6 @@ import org.apache.hadoop.hive.ql.exec.Ma
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.OperatorFactory;
import org.apache.hadoop.hive.ql.exec.PTFOperator;
-import org.apache.hadoop.hive.ql.exec.PTFUtils;
import org.apache.hadoop.hive.ql.exec.RecordReader;
import org.apache.hadoop.hive.ql.exec.RecordWriter;
import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
@@ -10996,14 +10995,13 @@ public class SemanticAnalyzer extends Ba
for (int i = 0; i < childCount; i++) {
ASTNode selExpr = (ASTNode) selNode.getChild(i);
if (selExpr.getType() != HiveParser.TOK_SELEXPR) {
- throw new SemanticException(PTFUtils.sprintf(
- "Only Select expressions supported in dynamic select list", selectExprStr));
+ throw new SemanticException(String.format(
+ "Only Select expressions supported in dynamic select list: %s", selectExprStr));
}
ASTNode expr = (ASTNode) selExpr.getChild(0);
if (expr.getType() == HiveParser.TOK_ALLCOLREF) {
throw new SemanticException(
- PTFUtils.sprintf("'*' column not allowed in dynamic select list",
- selectExprStr));
+ String.format("'%s' column not allowed in dynamic select list", selectExprStr));
}
ASTNode aliasNode = selExpr.getChildCount() > 1
&& selExpr.getChild(1).getType() == HiveParser.Identifier ?
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java Sat Mar 2 21:14:40 2013
@@ -21,7 +21,6 @@ package org.apache.hadoop.hive.ql.parse;
import java.util.ArrayList;
import java.util.HashMap;
-import org.apache.hadoop.hive.ql.exec.PTFUtils;
import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.OrderSpec;
import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.PartitionSpec;
import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.PartitioningSpec;
@@ -431,7 +430,7 @@ public class WindowingSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("window(start=%s, end=%s)", start, end);
+ return String.format("window(start=%s, end=%s)", start, end);
}
}
@@ -500,7 +499,7 @@ public class WindowingSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("range(%s %s)", (amt == UNBOUNDED_AMOUNT ? "Unbounded" : amt),
+ return String.format("range(%s %s)", (amt == UNBOUNDED_AMOUNT ? "Unbounded" : amt),
direction);
}
@@ -524,7 +523,7 @@ public class WindowingSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("currentRow");
+ return "currentRow";
}
@Override
@@ -591,7 +590,7 @@ public class WindowingSpec {
@Override
public String toString()
{
- return PTFUtils.sprintf("value(%s %s %s)", expression.toStringTree(), amt, direction);
+ return String.format("value(%s %s %s)", expression.toStringTree(), amt, direction);
}
public int compareTo(BoundarySpec other)
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java Sat Mar 2 21:14:40 2013
@@ -117,7 +117,7 @@ public class NPath extends TableFunction
static void throwErrorWithSignature(String message) throws SemanticException
{
- throw new SemanticException(PTFUtils.sprintf(
+ throw new SemanticException(String.format(
"NPath signature is: SymbolPattern, one or more SymbolName, " +
"expression pairs, the result expression as a select list. Error %s",
message));
@@ -253,7 +253,7 @@ public class NPath extends TableFunction
PrimitiveObjectInspector.PrimitiveCategory.STRING )
{
throwErrorWithSignature(
- PTFUtils.sprintf("Currently a Symbol Name(%s) must be a Constant String",
+ String.format("Currently a Symbol Name(%s) must be a Constant String",
symbolNameArg.getExpressionTreeString()));
}
String symbolName = ((ConstantObjectInspector)symbolNameArgOI).
@@ -265,7 +265,7 @@ public class NPath extends TableFunction
((PrimitiveObjectInspector)symolExprArgOI).getPrimitiveCategory() !=
PrimitiveObjectInspector.PrimitiveCategory.BOOLEAN )
{
- throwErrorWithSignature(PTFUtils.sprintf("Currently a Symbol Expression(%s) " +
+ throwErrorWithSignature(String.format("Currently a Symbol Expression(%s) " +
"must be a boolean expression", symolExprArg.getExpressionTreeString()));
}
evaluator.symInfo.add(symbolName, symolExprArg);
@@ -668,7 +668,7 @@ public class NPath extends TableFunction
Object[] symbolDetails = symbolExprEvalMap.get(symbol.toLowerCase());
if ( symbolDetails == null )
{
- throw new SemanticException(PTFUtils.sprintf("Unknown Symbol %s", symbol));
+ throw new SemanticException(String.format("Unknown Symbol %s", symbol));
}
ExprNodeEvaluator symbolExprEval = (ExprNodeEvaluator) symbolDetails[0];
Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java?rev=1451943&r1=1451942&r2=1451943&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java Sat Mar 2 21:14:40 2013
@@ -18,8 +18,6 @@
package org.apache.hadoop.hive.ql.udf.ptf;
-import static org.apache.hadoop.hive.ql.exec.PTFUtils.sprintf;
-
import org.apache.hadoop.hive.ql.exec.PTFOperator;
import org.apache.hadoop.hive.ql.exec.PTFPartition;
import org.apache.hadoop.hive.ql.exec.PTFPartition.PTFPartitionIterator;
@@ -158,7 +156,7 @@ public abstract class TableFunctionEvalu
{
if ( !isTransformsRawInput())
{
- throw new HiveException(sprintf("Internal Error: mapExecute called on function (%s)that has no Map Phase", tDef.getName()));
+ throw new HiveException(String.format("Internal Error: mapExecute called on function (%s)that has no Map Phase", tDef.getName()));
}
return _transformRawInput(iPart);
}