From: Adriano d. S. F. <adr...@gm...> - 2013-06-28 01:14:04
|
On 24-06-2013 04:22, Alex Peshkoff wrote: > On 06/23/13 22:18, Adriano dos Santos Fernandes wrote: >> Hi! >> >> This error is inconsistent in 2.5 and 3.0! >> >> 2.5 accepts a DECLARE for a denied module, but rejects it if a procedure >> references the function. This happens because DFW does not load the just >> declared function, but it happens when it is referenced. This is at >> least strange. > > Legacy behavior - exists at least since ib6. > >> >> In 3.0 DFW loads it and rejects it right on the declaration. But it >> happens then that restore may not work (I guess it may not work in 2.5 >> too > > Due to this code (2.5) it's just a warning: > > if (tdbb->getAttachment()->att_flags & ATT_gbak_attachment) > { > warning(Arg::Warning(isc_funnotdef) << Arg::Str(name) << > Arg::Warning(isc_modnotfound)); > } > else { > csb->csb_blr_reader.seekBackward(count); > error(csb, Arg::Gds(isc_funnotdef) << Arg::Str(name) << > Arg::Gds(isc_modnotfound)); > } > >> ). Currently this error in restore makes metadata wrong and causes >> somewhat unrelated crashes with procedures not completely loaded. >> >> > > How do you want to fix this? For me 2.5 is OK - may be with the warning > when declaring missing function in addittion to what we have now. > No, I was not talking about missing function, but about UdfAccess parameter restriction. Imagine user restoring multi-gigabyte database and forget to adjust server param. It will just throw an error at restore end, even in 2.5. Adriano |