Re: Any Known Upgrade Problems?
Posted in 1998
On Tue, 22 Sep 1998, Matthew Reprogle wrote:
> Jonathan Leffler wrote:
> > On Thu, 17 Sep 1998, Dan Frascella wrote:
> > > I am going to have to upgrade my current tools (4Gl, ISQL, ESQL etc.)
> > > from version 6.0 to 7.2 (Yes it is for Y2K compliance).
> >
> > If going from 6.05 to 7.2, it should be straight-forward. If going from
> > 6.00 to 7.2, then there may be some problems, though it should still be
> > relatively simple.
> >
> > > My current engine is Online 7.30 and I am wondering if anybody knows
> > > of any problems that I might encounter?
>
> Sorry for replying to a reply, but our server no longer has the original
> message.
>
> We just upgraded from 7.23 to 7.30 UC3-1, and I ran into a definite problem
> with the following syntax:
> DELETE FROM tab1
> WHERE keycol2 IN (SELECT col_a FROM temp_tab);>
> Before it ran fine. After the upgrade, the statement would run for 10 minutes
> before failing with:
> 244: Could not do a physical-order read to fetch next row.
> 134: ISAM error: no more locks>
> In the release notes, I see this noted as a supposedly fixed bug:
>
> 72545 CAN RUN OUT OF LOCKS (-244/-134) WHEN EXECUTING A DELETE OR UPDATE
> STATEMENT THAT DOESN'T USE AN INDEX FOR SEARCHING.
Interestingly, the entry in PTS has a subtly different description:
72545 XPS CAN RUN OUT OF LOCKS (-244/-134) WHEN EXECUTING A DELETE OR
UPDATE STATEMENT THAT DOESN'T USE AN INDEX FOR SEARCHING.
And, it is asserted OK-EXC in both 7.30 and 9.20; that means the bug
cannot possibly happen in those versions -- except perhaps that it does...
> So I changed the SQL so that it used an index containing keycol1 and keycol2:
>
> DELETE FROM tab1
> WHERE 1 IN (
> SELECT 1 FROM temp_tab t
> WHERE t.col_a = tab1.keycol1
> AND t.col_b = tab1.keycol2
> );>
> And now it works fine. I will be submitting this to Informix as a problem.
Yours,
Jonathan Leffler (jleffler@informix.com) #include <witticism.h>
Guardian of DBD::Informix v0.60 -- http://www.perl.com/CPAN
Informix IDN for D4GL & Linux -- http://www.informix.com/idn