public void IndexCollectionScan <TT>(string memberName, TT[] values) { var p = new RowScanPlanItem(_journal, _tx); p.AddContainsScan(Metadata.GetColumnByPropertyName(memberName), values); _planHead = p; }
public void ColumnScan <T>(IColumnMetadata column, T literal) { var planItem = new RowScanPlanItem(_journal, _tx); planItem.AddContainsScan(column, literal); _planHead = planItem; }
public void IndexCollectionScan(string memberName, IEnumerable values, Expression exp) { var p = new RowScanPlanItem(_journal, _tx); var column = Metadata.GetColumnByPropertyName(memberName); switch (column.DataType.ColumnType) { case EFieldType.Byte: p.AddContainsScan(column, ToIList <byte>(values)); break; case EFieldType.Bool: p.AddContainsScan(column, ToIList <bool>(values)); break; case EFieldType.Int16: p.AddContainsScan(column, ToIList <short>(values)); break; case EFieldType.Int32: p.AddContainsScan(column, ToIList <int>(values)); break; case EFieldType.Int64: p.AddContainsScan(column, ToIList <long>(values)); break; case EFieldType.Double: p.AddContainsScan(column, ToIList <double>(values)); break; case EFieldType.Symbol: case EFieldType.String: p.AddContainsScan(column, ToIList <string>(values)); break; case EFieldType.DateTime: case EFieldType.DateTimeEpochMs: p.AddContainsScan(column, ToIList <DateTime>(values)); break; default: throw QueryExceptionExtensions.ExpressionNotSupported( string.Format("Column of type {0} cannot be bound to Contains expressions", column.DataType.ColumnType), exp); } _planHead = p; }