Symptom
When trying to search for a project in the Plan Customer projects app, no project is found.
An error is raised in the TREX call:
Return code: 23008
Return text: exception 70023008: Can't create plan for join query
The indexserver trace contains entries similar to the ones below:
XXXX-XX-XX XX:XX:XX e join_eval PlanCreator.cpp(11837) : Found unconnected output with id=XXX
XXXX-XX-XX XX:XX:XX e join_eval PlanCreator.cpp(11852) : Dangling output is created by JEStep2 pop119 (JEStep2)
XXXX-XX-XX XX:XX:XX e join_eval PlanCreator.cpp(02886) : Found unconnected outputs in plan. Please set 'indexserver.ini -> joins -> fail_on_unconnected_outputs = false' and have a closer look by turning on join_eval=info.
XXXX-XX-XX XX:XX:XX e join_eval PlanCreator.cpp(02890) : SqlExecutor at
1: in Diagnose::impl::dumpInfoSelfCtx(ltt::basic_ostream<char, ltt::char_traits<char> >&, bool, bool, bool, bool, bool, bool, unsigned long)+0x65 at Trace.cpp:32 (libhdbbasis.so)
2: in JoinEvaluator::PlanCreator::createPlan(ltt_adp::basic_string<char, ltt::char_traits<char>, ltt::integral_constant<bool, true> >*)::{lambda()#8}::operator()() const [clone .isra.1735] [clone .lto_priv.9893]+0x15e at PlanCreator.cpp:2890 (libhdbcsapi.so)
3: in JoinEvaluator::PlanCreator::createPlan(ltt_adp::basic_string<char, ltt::char_traits<char>, ltt::integral_constant<bool, true> >*)+0x6c1 at PlanCreator.cpp:2890 (libhdbcsapi.so)
4: in TRexAPI::TRexApiSearch::searchJoinIndex(TRexAPI::QueryContext&, TRexAPI::TRexApiSearchTableResult&, ltt_adp::vector<TRexAPI::FSTermAttributeInfo, ltt::integral_constant<bool, true> > const*, ltt_adp::vector<TRexConfig::TableOrView, ltt::integral_constant<bool, true> > const&)+0x31a0 at TRexApiSearch.cpp:9126 (libhdbcsapi.so)
5: in TRexAPI::TRexApiSearch::doSearch(TRexAPI::TRexApiSearchTableResult&)+0x7120 at TRexApiSearch.cpp:5838 (libhdbcsapi.so)
6: in TRexAPI::TRexApiSearch::search(TRexAPI::TRexApiSearchTableResult&)+0x60 at TRexApiSearch.cpp:4932 (libhdbcsapi.so)
7: in TRexAPI::SearchDbslCommand::executeImpl(TrexBase::AsXmlWriter&)+0x847 at TRexApiSearch.cpp:16826 (libhdbcsapi.so)
8: in TREXviaDBSL+0x67b at trex_util.cc:497 (libhdbcswrapper.so)
[...]
Environment
SAP S/4HANA Cloud 2108
Cause
Due to a programming error in SAP HANA database, the Join Engine optimizer causes an error when JEStep2 produces 2 outputs in the redundant reduction move but only one is consumed by following JEStep 1.
Affected Releases:
- SAP HANA 2:
- Revisions <= 048.03 (SPS04)
- Revisions <= 054.00 (SPS05)
Prerequisites:
- A very complex join query is executed by the Join Engine.
Resolution
Issue is fixed when one of the following SAP HANA Revisions is applied:
- SAP HANA 2:
- Revisions >= 048.04 (SPS04)
- Revisions >= 055.00 (SPS05)
- or higher
- or higher
Workaround:
Reach out to S/4HANA Cloud Operations team through an case and request that the following workaround is applied:
- Disable the check for unconsumed output in Join engine plan by setting the parameter:
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('joins', 'fail_on_unconnected_outputs') = 'false' with reconfigure;
Disclaimer:
The SAP HANA configuration parameter [joins] fail_on_unconnected_outputs is an internal parameter and may only be used in the context of this SAP Note. Using such a parameter requires that the SAP HANA system has the revision specified in the SAP Note and the described prerequisites are met. Using internal parameters outside of this given scope is not supported. This workaround should be removed as soon as a permanent solution is available and implemented.
See Also
3027852 - Join Query Fail With Error "Can't create plan for join query"
Keywords
KBA , CA-CPD-SS , S/4HANA Public Cloud – Professional Service Projects , HAN-DB , SAP HANA Database , Problem
SAP Knowledge Base Article - Public