@Explain(vectorization = Explain.Vectorization.OPERATOR, displayName = "keyExpressions", explainLevels = { Level.DEFAULT, Level.EXTENDED }) public List<String> getKeyExpressions() { return vectorExpressionsToStringList(vectorTopNKeyDesc.getKeyExpressions()); } }
VectorTopNKeyDesc vectorTopNKeyDesc = new VectorTopNKeyDesc(); vectorOp = vectorizeTopNKeyOperator(op, vContext, vectorTopNKeyDesc); isNative = true; if (vectorTaskColumnInfo != null) { VectorExpression[] keyExpressions = vectorTopNKeyDesc.getKeyExpressions(); if (usesVectorUDFAdaptor(keyExpressions)) { vectorTaskColumnInfo.setUsesVectorUDFAdaptor(true);
private static Operator<? extends OperatorDesc> vectorizeTopNKeyOperator( Operator<? extends OperatorDesc> topNKeyOperator, VectorizationContext vContext, VectorTopNKeyDesc vectorTopNKeyDesc) throws HiveException { TopNKeyDesc topNKeyDesc = (TopNKeyDesc) topNKeyOperator.getConf(); List<ExprNodeDesc> keyColumns = topNKeyDesc.getKeyColumns(); VectorExpression[] keyExpressions = vContext.getVectorExpressions(keyColumns); vectorTopNKeyDesc.setKeyExpressions(keyExpressions); return OperatorFactory.getVectorOperator( topNKeyOperator.getCompilationOpContext(), topNKeyDesc, vContext, vectorTopNKeyDesc); }
@Override protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); VectorExpression.doTransientInit(vectorDesc.getKeyExpressions()); for (VectorExpression keyExpression : vectorDesc.getKeyExpressions()) { keyExpression.init(hconf); } vectorExtractRow = new VectorExtractRow(); vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns()); extractedRow = new Object[vectorExtractRow.getCount()]; temporarySelected = new int [VectorizedRowBatch.DEFAULT_SIZE]; }
boolean selectedInUseBackup = batch.selectedInUse; for (VectorExpression keyExpression : vectorDesc.getKeyExpressions()) { keyExpression.evaluate(batch);