@@ -871,8 +871,13 @@ t_gnode::_register_context(
871871 ctx->reset ();
872872
873873 if (should_update) {
874- ctx->compute_expressions (m_gstate->get_table (), pkeyed_table,
874+ ctx->compute_expressions (m_gstate->get_table (),
875875 expression_vocab, expression_regex_mapping);
876+ ctx->get_expression_tables ()->set_flattened (
877+ m_gstate->get_pkeyed_table (
878+ ctx->get_expression_tables ()->m_master ->get_schema (),
879+ ctx->get_expression_tables ()->m_master ));
880+
876881 update_context_from_state<t_ctx2>(ctx, name, pkeyed_table);
877882 }
878883 } break ;
@@ -881,8 +886,12 @@ t_gnode::_register_context(
881886 t_ctx1* ctx = static_cast <t_ctx1*>(ptr_);
882887 ctx->reset ();
883888 if (should_update) {
884- ctx->compute_expressions (m_gstate->get_table (), pkeyed_table,
889+ ctx->compute_expressions (m_gstate->get_table (),
885890 expression_vocab, expression_regex_mapping);
891+ ctx->get_expression_tables ()->set_flattened (
892+ m_gstate->get_pkeyed_table (
893+ ctx->get_expression_tables ()->m_master ->get_schema (),
894+ ctx->get_expression_tables ()->m_master ));
886895
887896 update_context_from_state<t_ctx1>(ctx, name, pkeyed_table);
888897 }
@@ -892,8 +901,13 @@ t_gnode::_register_context(
892901 t_ctx0* ctx = static_cast <t_ctx0*>(ptr_);
893902 ctx->reset ();
894903 if (should_update) {
895- ctx->compute_expressions (m_gstate->get_table (), pkeyed_table,
904+ ctx->compute_expressions (m_gstate->get_table (),
896905 expression_vocab, expression_regex_mapping);
906+ ctx->get_expression_tables ()->set_flattened (
907+ m_gstate->get_pkeyed_table (
908+ ctx->get_expression_tables ()->m_master ->get_schema (),
909+ ctx->get_expression_tables ()->m_master ));
910+
897911 update_context_from_state<t_ctx0>(ctx, name, pkeyed_table);
898912 }
899913 } break ;
@@ -913,8 +927,13 @@ t_gnode::_register_context(
913927 ctx->reset ();
914928
915929 if (should_update) {
916- ctx->compute_expressions (m_gstate->get_table (), pkeyed_table,
930+ ctx->compute_expressions (m_gstate->get_table (),
917931 expression_vocab, expression_regex_mapping);
932+ ctx->get_expression_tables ()->set_flattened (
933+ m_gstate->get_pkeyed_table (
934+ ctx->get_expression_tables ()->m_master ->get_schema (),
935+ ctx->get_expression_tables ()->m_master ));
936+
918937 update_context_from_state<t_ctx_grouped_pkey>(
919938 ctx, name, pkeyed_table);
920939 }
@@ -999,27 +1018,39 @@ t_gnode::_compute_expressions(std::shared_ptr<t_data_table> flattened_masked) {
9991018 case TWO_SIDED_CONTEXT : {
10001019 t_ctx2* ctx = static_cast <t_ctx2*>(ctxh.m_ctx );
10011020 ctx->compute_expressions (m_gstate->get_table (),
1002- flattened_masked, expression_vocab,
1003- expression_regex_mapping);
1021+ expression_vocab, expression_regex_mapping);
1022+ ctx->get_expression_tables ()->set_flattened (
1023+ m_gstate->get_pkeyed_table (
1024+ ctx->get_expression_tables ()->m_master ->get_schema (),
1025+ ctx->get_expression_tables ()->m_master ));
10041026 } break ;
10051027 case ONE_SIDED_CONTEXT : {
10061028 t_ctx1* ctx = static_cast <t_ctx1*>(ctxh.m_ctx );
10071029 ctx->compute_expressions (m_gstate->get_table (),
1008- flattened_masked, expression_vocab,
1009- expression_regex_mapping);
1030+ expression_vocab, expression_regex_mapping);
1031+ ctx->get_expression_tables ()->set_flattened (
1032+ m_gstate->get_pkeyed_table (
1033+ ctx->get_expression_tables ()->m_master ->get_schema (),
1034+ ctx->get_expression_tables ()->m_master ));
10101035 } break ;
10111036 case ZERO_SIDED_CONTEXT : {
10121037 t_ctx0* ctx = static_cast <t_ctx0*>(ctxh.m_ctx );
10131038 ctx->compute_expressions (m_gstate->get_table (),
1014- flattened_masked, expression_vocab,
1015- expression_regex_mapping);
1039+ expression_vocab, expression_regex_mapping);
1040+ ctx->get_expression_tables ()->set_flattened (
1041+ m_gstate->get_pkeyed_table (
1042+ ctx->get_expression_tables ()->m_master ->get_schema (),
1043+ ctx->get_expression_tables ()->m_master ));
10161044 } break ;
10171045 case GROUPED_PKEY_CONTEXT : {
10181046 t_ctx_grouped_pkey* ctx
10191047 = static_cast <t_ctx_grouped_pkey*>(ctxh.m_ctx );
10201048 ctx->compute_expressions (m_gstate->get_table (),
1021- flattened_masked, expression_vocab,
1022- expression_regex_mapping);
1049+ expression_vocab, expression_regex_mapping);
1050+ ctx->get_expression_tables ()->set_flattened (
1051+ m_gstate->get_pkeyed_table (
1052+ ctx->get_expression_tables ()->m_master ->get_schema (),
1053+ ctx->get_expression_tables ()->m_master ));
10231054 } break ;
10241055 case UNIT_CONTEXT :
10251056 break ;
0 commit comments