示例#1
0
        public static void MinimumFileFormat(Parse parse, int db, int minFormat)
        {
            Vdbe v = parse.GetVdbe();

            // The VDBE should have been allocated before this routine is called. If that allocation failed, we would have quit before reaching this point
            if (C._ALWAYS(v != null))
            {
                int r1 = Expr.GetTempReg(parse);
                int r2 = Expr.GetTempReg(parse);
                v.AddOp3(OP.ReadCookie, db, r1, Btree.META.FILE_FORMAT);
                v.UsesBtree(db);
                v.AddOp2(OP.Integer, minFormat, r2);
                int j1 = v.AddOp3(OP.Ge, r2, 0, r1);
                v.AddOp3(OP.SetCookie, db, Btree.META.FILE_FORMAT, r2);
                v.JumpHere(j1);
                Expr.ReleaseTempReg(parse, r1);
                Expr.ReleaseTempReg(parse, r2);
            }
        }