Search in sources :

Example 16 with DualPlannerTest

use of com.apple.foundationdb.record.provider.foundationdb.query.DualPlannerTest in project fdb-record-layer by FoundationDB.

the class FDBComparatorPlanTest method testTwoSameInnerPlansWithScannedRowLimit.

@DualPlannerTest
void testTwoSameInnerPlansWithScannedRowLimit() throws Throwable {
    complexQuerySetup(NO_HOOK);
    RecordQuery query1 = RecordQuery.newBuilder().setRecordType("MySimpleRecord").setFilter(Query.field("num_value_2").equalsValue(1)).build();
    RecordQuery query2 = RecordQuery.newBuilder().setRecordType("MySimpleRecord").setFilter(Query.field("num_value_2").equalsValue(1)).build();
    // This will select plan 1 for the first execution and later some illegal value. The idea is that after the
    // first iteration, the continuation should determine the selected plan and not the relative priorities
    RecordQueryPlan planUnderTest = RecordQueryComparatorPlan.from(plan(query1, query2), primaryKey(), 0, abortOnComparisonFailure);
    // Iteration 1, start with empty continuation
    RecordCursorResult<FDBQueriedRecord<Message>> result = assertSamePlansWithContinuation(planUnderTest, null, 0, 200, 17, 1, 68, false, RecordCursor.NoNextReason.SCAN_LIMIT_REACHED);
    // Iteration 2, start with previous continuation, reach end (before limit)
    byte[] continuation = result.getContinuation().toBytes();
    assertSamePlansWithContinuation(planUnderTest, continuation, 0, 200, 16, 1, 66, false, RecordCursor.NoNextReason.SOURCE_EXHAUSTED);
}
Also used : FDBQueriedRecord(com.apple.foundationdb.record.provider.foundationdb.FDBQueriedRecord) RecordQuery(com.apple.foundationdb.record.query.RecordQuery) DualPlannerTest(com.apple.foundationdb.record.provider.foundationdb.query.DualPlannerTest)

Aggregations

DualPlannerTest (com.apple.foundationdb.record.provider.foundationdb.query.DualPlannerTest)16 RecordQuery (com.apple.foundationdb.record.query.RecordQuery)16 FDBQueriedRecord (com.apple.foundationdb.record.provider.foundationdb.FDBQueriedRecord)5 EvaluationContext (com.apple.foundationdb.record.EvaluationContext)3 Value (com.apple.foundationdb.record.query.predicates.Value)2 ValuePickerValue (com.apple.foundationdb.record.query.predicates.ValuePickerValue)2 ExecuteProperties (com.apple.foundationdb.record.ExecuteProperties)1 RecordCoreArgumentException (com.apple.foundationdb.record.RecordCoreArgumentException)1 RecordCursor (com.apple.foundationdb.record.RecordCursor)1 RecordCursorResult (com.apple.foundationdb.record.RecordCursorResult)1 TestHelpers.assertDiscardedAtMost (com.apple.foundationdb.record.TestHelpers.assertDiscardedAtMost)1 KeyExpression (com.apple.foundationdb.record.metadata.expressions.KeyExpression)1 FDBRecordStoreQueryTestBase (com.apple.foundationdb.record.provider.foundationdb.query.FDBRecordStoreQueryTestBase)1 Query (com.apple.foundationdb.record.query.expressions.Query)1 Tags (com.apple.test.Tags)1 ImmutableList (com.google.common.collect.ImmutableList)1 Descriptors (com.google.protobuf.Descriptors)1 Message (com.google.protobuf.Message)1 Arrays (java.util.Arrays)1 Collections (java.util.Collections)1