Fixing an incorrect assumption about BinaryStreamable.Initialize()

This commit is contained in:
James Terwilliger 2019-05-02 08:08:40 -07:00
Родитель a31556f533
Коммит ab817e426b
3 изменённых файлов: 5 добавлений и 3 удалений

Просмотреть файл

@ -35,7 +35,7 @@ namespace Microsoft.StreamProcessing
this.errorMessages = $"The left input payload type, '{typeof(TLeft).FullName}', to Equijoin does not implement the interface {nameof(IEqualityComparerExpression<TLeft>)}. This interface is needed for code generation of this operator for columnar mode. Furthermore, the equality expression in the interface can only refer to input variables if used in field or property references.";
if (Config.CodegenOptions.DontFallBackToRowBasedExecution)
throw new StreamProcessingException(this.errorMessages);
else this.Left = this.Left.ColumnToRow();
this.Left = this.Left.ColumnToRow();
}
// This operator uses the equality method on payloads
if (right.Properties.IsColumnar && !right.Properties.IsStartEdgeOnly && !right.Properties.PayloadEqualityComparer.CanUsePayloadEquality())
@ -43,7 +43,7 @@ namespace Microsoft.StreamProcessing
this.errorMessages = $"The right input payload type, '{typeof(TRight).FullName}', to Equijoin does not implement the interface {nameof(IEqualityComparerExpression<TRight>)}. This interface is needed for code generation of this operator for columnar mode. Furthermore, the equality expression in the interface can only refer to input variables if used in field or property references.";
if (Config.CodegenOptions.DontFallBackToRowBasedExecution)
throw new StreamProcessingException(this.errorMessages);
else this.Right = this.Right.ColumnToRow();
this.Right = this.Right.ColumnToRow();
}
if (left.Properties.IsStartEdgeOnly && right.Properties.IsStartEdgeOnly)

Просмотреть файл

@ -30,7 +30,7 @@ namespace Microsoft.StreamProcessing
this.errorMessages = $"The payload type, '{typeof(TLeft).FullName}', to Left Antisemijoin does not implement the interface {nameof(IEqualityComparerExpression<TLeft>)}. This interface is needed for code generation of this operator for columnar mode. Furthermore, the equality expression in the interface can only refer to input variables if used in field or property references.";
if (Config.CodegenOptions.DontFallBackToRowBasedExecution)
throw new StreamProcessingException(this.errorMessages);
else this.Left = this.Left.ColumnToRow();
this.Left = this.Left.ColumnToRow();
}
Initialize();

Просмотреть файл

@ -50,10 +50,12 @@ namespace Microsoft.StreamProcessing
else if (this.Left.Properties.IsColumnar)
{
this.Left = this.Left.ColumnToRow();
this.properties = this.properties.ToRowBased();
}
else if (this.Right.Properties.IsColumnar)
{
this.Right = this.Right.ColumnToRow();
this.properties = this.properties.ToRowBased();
}
}