| 5781 | |
| 5782 | |
| 5783 | const char* JStatement::getPlan(CheckStatusWrapper* userStatus, FB_BOOLEAN detailed) |
| 5784 | { |
| 5785 | const char* ret = NULL; |
| 5786 | |
| 5787 | try |
| 5788 | { |
| 5789 | EngineContextHolder tdbb(userStatus, this, FB_FUNCTION); |
| 5790 | check_database(tdbb); |
| 5791 | |
| 5792 | try |
| 5793 | { |
| 5794 | ret = metadata.getPlan(detailed); |
| 5795 | } |
| 5796 | catch (const Exception& ex) |
| 5797 | { |
| 5798 | transliterateException(tdbb, ex, userStatus, "JStatement::getPlan"); |
| 5799 | return ret; |
| 5800 | } |
| 5801 | trace_warning(tdbb, userStatus, "JStatement::getPlan"); |
| 5802 | } |
| 5803 | catch (const Exception& ex) |
| 5804 | { |
| 5805 | ex.stuffException(userStatus); |
| 5806 | return ret; |
| 5807 | } |
| 5808 | |
| 5809 | successful_completion(userStatus); |
| 5810 | |
| 5811 | return ret; |
| 5812 | } |
| 5813 | |
| 5814 | IMessageMetadata* JStatement::getInputMetadata(CheckStatusWrapper* userStatus) |
| 5815 | { |
nothing calls this directly
no test coverage detected