@@ -2942,17 +2942,6 @@ static void transaction_options(thread_db* tdbb,
29422942 Arg::Str (" isc_tpb_consistency" ) << Arg::Str (" isc_tpb_read_consistency" ));
29432943 }
29442944
2945- if (rec_version.isAssigned ())
2946- {
2947- const auto tpbStr = rec_version.asBool () ?
2948- " isc_tpb_rec_version" : " isc_tpb_no_rec_version" ;
2949-
2950- ERR_post (Arg::Gds (isc_bad_tpb_content) <<
2951- // 'Option @1 is not valid if @2 was used previously in TPB'
2952- Arg::Gds (isc_tpb_conflicting_options) <<
2953- Arg::Str (" isc_tpb_consistency" ) << Arg::Str (tpbStr) );
2954- }
2955-
29562945 if (shared_snapshot)
29572946 {
29582947 ERR_post (
@@ -2981,17 +2970,6 @@ static void transaction_options(thread_db* tdbb,
29812970 Arg::Str (" isc_tpb_concurrency" ) << Arg::Str (" isc_tpb_read_consistency" ));
29822971 }
29832972
2984- if (rec_version.isAssigned ())
2985- {
2986- const auto tpbStr = rec_version.asBool () ?
2987- " isc_tpb_rec_version" : " isc_tpb_no_rec_version" ;
2988-
2989- ERR_post (Arg::Gds (isc_bad_tpb_content) <<
2990- // 'Option @1 is not valid if @2 was used previously in TPB'
2991- Arg::Gds (isc_tpb_conflicting_options) <<
2992- Arg::Str (" isc_tpb_concurrency" ) << Arg::Str (tpbStr) );
2993- }
2994-
29952973 transaction->tra_flags &= ~TRA_degree3;
29962974 transaction->tra_flags &= ~(TRA_read_committed | TRA_read_consistency | TRA_rec_version);
29972975 break ;
@@ -3527,6 +3505,15 @@ static void transaction_options(thread_db* tdbb,
35273505 }
35283506 }
35293507
3508+ if (rec_version.isAssigned () && !(transaction->tra_flags & TRA_read_committed))
3509+ {
3510+ const auto tpbStr = rec_version.asBool () ?
3511+ " isc_tpb_rec_version" : " isc_tpb_no_rec_version" ;
3512+
3513+ ERR_post (Arg::Gds (isc_bad_tpb_content) <<
3514+ Arg::Gds (isc_tpb_option_without_rc) << Arg::Str (tpbStr));
3515+ }
3516+
35303517 if ((transaction->tra_flags & TRA_read_committed) &&
35313518 !(transaction->tra_flags & TRA_read_consistency) &&
35323519 !(tdbb->tdbb_flags & TDBB_sweeper) &&
0 commit comments