private static void CreateColumnScan <TT>(IColumnMetadata column, object literal, ResultSetBuilder builder)
 {
     if (literal == null)
     {
         builder.ColumnNullScan(column);
     }
     else
     {
         var value = (TT)column.ToTypedValue(literal);
         builder.ColumnScan <TT>(column, value);
     }
 }
 private static void CreateColumnNotEqualScan <TT>(IColumnMetadata column, object literal, ResultSetBuilder builder)
 {
     if (literal == null)
     {
         builder.ColumnNotNullScan(column);
     }
     else
     {
         var value  = (TT)column.ToTypedValue(literal);
         var lambda = (Func <TT, bool>)(t => !object.Equals(t, value));
         builder.ColumnLambdaScan(column, lambda);
     }
 }