| 664 | } |
| 665 | |
| 666 | void REPL_exec_sql(thread_db* tdbb, jrd_tra* transaction, const string& sql) |
| 667 | { |
| 668 | fb_assert(tdbb->tdbb_flags & TDBB_repl_in_progress); |
| 669 | |
| 670 | if (tdbb->tdbb_flags & TDBB_dont_post_dfw) |
| 671 | return; |
| 672 | |
| 673 | FbLocalStatus status; |
| 674 | const auto replicator = getReplicator(tdbb, status, transaction); |
| 675 | if (!replicator) |
| 676 | return; |
| 677 | |
| 678 | const auto attachment = tdbb->getAttachment(); |
| 679 | const auto charset = attachment->att_charset; |
| 680 | |
| 681 | // This place is already protected from recursion in calling code |
| 682 | |
| 683 | replicator->executeSqlIntl(&status, charset, sql.c_str()); |
| 684 | |
| 685 | checkStatus(tdbb, status, transaction); |
| 686 | } |
| 687 | |
| 688 | void REPL_journal_switch(thread_db* tdbb) |
| 689 | { |
no test coverage detected