blob: 82436281ac113db9736aa2e9ca55985385814a35 [file] [log] [blame]
--
-- Licensed to the Apache Software Foundation (ASF) under one or more
-- contributor license agreements. See the NOTICE file distributed with
-- this work for additional information regarding copyright ownership.
-- The ASF licenses this file to You under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with
-- the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
autocommit off;
create table foo (a int, b char(250), c char(250), d int);
insert into foo values (1, '1', '1', 1);
insert into foo values (11, '11', '1', 1);
insert into foo values (12, '12', '1', 1);
insert into foo values (13, '13', '1', 1);
insert into foo values (14, '14', '1', 1);
insert into foo values (15, '15', '1', 1);
insert into foo values (16, '16', '1', 1);
insert into foo values (17, '17', '1', 1);
insert into foo values (18, '18', '1', 1);
insert into foo values (11, '111', '1', 1);
insert into foo values (12, '121', '1', 1);
insert into foo values (13, '131', '1', 1);
insert into foo values (14, '141', '1', 1);
insert into foo values (15, '151', '1', 1);
insert into foo values (16, '161', '1', 1);
insert into foo values (17, '171', '1', 1);
insert into foo values (18, '181', '1', 1);
insert into foo values (2, '2', '1', 1);
insert into foo values (3, '3', '1', 1);
insert into foo values (4, '4', '1', 1);
insert into foo values (5, '5', '1', 1);
insert into foo values (6, '6', '1', 1);
insert into foo values (7, '7', '1', 1);
insert into foo values (8, '8', '1', 1);
insert into foo values (9, '9', '1', 1);
create index foox on foo (b);
-- normal max optimization, last row in index is not deleted.
select max(b) from foo;
-- new max optimization, last row in index is deleted but others on page aren't.
delete from foo where a = 9;
select max(b) from foo;
-- new max optimization, last row in index is deleted but others on page aren't.
delete from foo where a = 8;
select max(b) from foo;
-- new max optimization, last row in index is null, real max on last page.
insert into foo values (9, null, '1', 1);
select max(b) from foo;
-- new max optimization, last is null and deleted, real max on last page.
delete from foo where a > 2;
select max(b) from foo;
-- max optimization does not work - fail over to scan, all rows on last page are
-- deleted, except for non-deleted null row on last page. max row on 1st page.
delete from foo where a > 1;
insert into foo values (9, null, '1', 1);
select max(b) from foo;
-- max optimization does not work - fail over to scan, all rows on last page are
-- deleted. non-deleted null row on last page. max row is on 1st page.
delete from foo where a > 1;
select max(b) from foo;
create table b5772 (a int, b int);
create index b1 on b5772(b);
-- 0 row case
select max(b) from b5772;
select min(b) from b5772;
-- 1 row case
insert into b5772 values (1, 1);
select max(b) from b5772;
select min(b) from b5772;
-- 1 null row case
drop table b5772;
create table b5772 (a int, b int);
create index b1 on b5772(b);
insert into b5772 values (2, null);
select max(b) from b5772;
select min(b) from b5772;
-- 1 row plus, one null row.
insert into b5772 values (1, 1);
-- cleanup
drop table b5772;
drop table foo;
commit;