public void Test_UseHashNest(HashHintType type, string typeString) { var mockBucket = new Mock <IBucket>(); mockBucket.SetupGet(e => e.Name).Returns("default"); var query = from airport in QueryFactory.Queryable <Airport>(mockBucket.Object) join route in QueryFactory.Queryable <Route>(mockBucket.Object).UseHash(type) on airport.Faa equals route.DestinationAirport into routes select new { airport, routes }; var n1QlQuery = CreateN1QlQuery(mockBucket.Object, query.Expression, FeatureVersions.AnsiJoin); var expected = "SELECT `Extent1` as `airport`, `Extent2` as `routes` " + "FROM `default` as `Extent1` " + $"LEFT OUTER NEST `default` as `Extent2` USE HASH ({typeString}) " + "ON (`Extent1`.`faa` = `Extent2`.`destinationairport`)"; Assert.AreEqual(expected, n1QlQuery); }
public void Test_UseHash(HashHintType type, string typeString) { var mockBucket = new Mock <IBucket>(); mockBucket.SetupGet(e => e.Name).Returns("default"); var query = from route in QueryFactory.Queryable <Route>(mockBucket.Object) join airport in QueryFactory.Queryable <Airport>(mockBucket.Object).UseHash(type) on route.DestinationAirport equals airport.Faa select new { route, airport }; var n1QlQuery = CreateN1QlQuery(mockBucket.Object, query.Expression); var expected = "SELECT `Extent1` as `route`, `Extent2` as `airport` " + "FROM `default` as `Extent1` " + $"INNER JOIN `default` as `Extent2` USE HASH ({typeString}) " + "ON (`Extent1`.`destinationairport` = `Extent2`.`faa`)"; Assert.AreEqual(expected, n1QlQuery); }
public UseHashClause(HashHintType hashType) { HashHintType = hashType; }