Hello, All. Could anybody explain me the purpose of following piece of code in VIO_proc_merge_save_point(), please?
> if ( (sav_point = transaction->tra_save_free) ) { > transaction->tra_save_free = sav_point->sav_next; > } > else { > sav_point = FB_NEW(*transaction->tra_pool) Savepoint(); > } > sav_point->sav_next = sav_next; > sav_point->sav_number = sav_number; > *sav_point_list = sav_point; > sav_point_list = &sav_point->sav_next; My best guess is that this routine is called on SUSPEND, so all already happened changes must be merged to procedure savepoint because they must not be undonable, but stack has to be preserved because nested DML will continue working. -- WBR, SD. ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel