| 544 | |
| 545 | |
| 546 | void REMOTE_reset_statement( Rsr* statement) |
| 547 | { |
| 548 | /************************************** |
| 549 | * |
| 550 | * R E M O T E _ r e s e t _ s t a t e m e n t |
| 551 | * |
| 552 | ************************************** |
| 553 | * |
| 554 | * Functional description |
| 555 | * Reset a statement by releasing all buffers except 1 |
| 556 | * |
| 557 | **************************************/ |
| 558 | RMessage* message; |
| 559 | |
| 560 | if (!statement || (!(message = statement->rsr_message))) |
| 561 | return; |
| 562 | |
| 563 | // Reset all the pipeline counters |
| 564 | |
| 565 | statement->rsr_rows_pending = 0; |
| 566 | statement->rsr_msgs_waiting = 0; |
| 567 | statement->rsr_reorder_level = 0; |
| 568 | statement->rsr_batch_count = 0; |
| 569 | |
| 570 | // only one entry |
| 571 | |
| 572 | if (message->msg_next == message) |
| 573 | return; |
| 574 | |
| 575 | // find the entry before statement->rsr_message |
| 576 | |
| 577 | RMessage* temp = message->msg_next; |
| 578 | while (temp->msg_next != message) |
| 579 | temp = temp->msg_next; |
| 580 | |
| 581 | temp->msg_next = message->msg_next; |
| 582 | message->msg_next = message; |
| 583 | |
| 584 | statement->rsr_buffer = statement->rsr_message; |
| 585 | |
| 586 | REMOTE_release_messages(temp); |
| 587 | } |
| 588 | |
| 589 | |
| 590 | // TMN: Beginning of C++ port - ugly but a start |
no test coverage detected