Search in sources :

Example 1 with IScriptDescription

use of org.apache.hyracks.algebricks.core.algebra.scripting.IScriptDescription in project asterixdb by apache.

the class StringStreamingScriptPOperator method contributeRuntimeOperator.

@Override
public void contributeRuntimeOperator(IHyracksJobBuilder builder, JobGenContext context, ILogicalOperator op, IOperatorSchema propagatedSchema, IOperatorSchema[] inputSchemas, IOperatorSchema outerPlanSchema) throws AlgebricksException {
    ScriptOperator scriptOp = (ScriptOperator) op;
    IScriptDescription scriptDesc = scriptOp.getScriptDescription();
    if (scriptDesc.getKind() != ScriptKind.STRING_STREAMING) {
        throw new IllegalStateException();
    }
    StringStreamingScriptDescription sssd = (StringStreamingScriptDescription) scriptDesc;
    StringStreamingRuntimeFactory runtime = new StringStreamingRuntimeFactory(sssd.getCommand(), sssd.getPrinterFactories(), sssd.getFieldDelimiter(), sssd.getParserFactory());
    RecordDescriptor recDesc = JobGenHelper.mkRecordDescriptor(context.getTypeEnvironment(op), propagatedSchema, context);
    builder.contributeMicroOperator(scriptOp, runtime, recDesc);
    // and contribute one edge from its child
    ILogicalOperator src = scriptOp.getInputs().get(0).getValue();
    builder.contributeGraphEdge(src, 0, scriptOp, 0);
}
Also used : StringStreamingScriptDescription(org.apache.hyracks.algebricks.core.algebra.scripting.StringStreamingScriptDescription) RecordDescriptor(org.apache.hyracks.api.dataflow.value.RecordDescriptor) ILogicalOperator(org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator) ScriptOperator(org.apache.hyracks.algebricks.core.algebra.operators.logical.ScriptOperator) IScriptDescription(org.apache.hyracks.algebricks.core.algebra.scripting.IScriptDescription) StringStreamingRuntimeFactory(org.apache.hyracks.algebricks.runtime.operators.std.StringStreamingRuntimeFactory)

Aggregations

ILogicalOperator (org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator)1 ScriptOperator (org.apache.hyracks.algebricks.core.algebra.operators.logical.ScriptOperator)1 IScriptDescription (org.apache.hyracks.algebricks.core.algebra.scripting.IScriptDescription)1 StringStreamingScriptDescription (org.apache.hyracks.algebricks.core.algebra.scripting.StringStreamingScriptDescription)1 StringStreamingRuntimeFactory (org.apache.hyracks.algebricks.runtime.operators.std.StringStreamingRuntimeFactory)1 RecordDescriptor (org.apache.hyracks.api.dataflow.value.RecordDescriptor)1