Chris,
Patch not approved for Bug#39795; test case falcon_online_index needs to
be updated, since you are modifying ONLINE ALTER restrictions. But you
probably knew that already...
Christopher Powers wrote:
> #At file:///home/cpowers/work/dev/dev-07/mysql/
>
> 2845 Christopher Powers 2008-10-01
> Bug#39711 "Running falcon_bug_34351_C shows increasing memory usage"
> Bug#39795 "Falcon: Online add index does not support index with
non-null columns"
> Bug#39796 "Falcon: Reference count decrement not atomic"
> modified:
> storage/falcon/DeferredIndex.cpp
> storage/falcon/DeferredIndex.h
> storage/falcon/DeferredIndexWalker.cpp
> storage/falcon/Index.cpp
> storage/falcon/Transaction.cpp
> storage/falcon/Transaction.h
> storage/falcon/WalkDeferred.cpp
> storage/falcon/ha_falcon.cpp
>
> per-file messages:
[...]
> storage/falcon/ha_falcon.cpp
> Remove nullable column and primary key restrictions for online
index creation in StorageInterface::check_if_supported_alter()
[...]
Please also update WL#4048 with information about which restrictions you
plan to keep in place for this feature towards beta and GA.
The test includes multiple negative subtests for ONLINE ALTER ADD INDEX
with non-nullable columns and/or primary keys. The first thing which
fails with the patch is:
falcon.falcon_online_index [ fail ]
mysqltest: At line 168: query 'ALTER ONLINE TABLE t3 ADD INDEX ix_c (c)'
succeeded - should have failed with errno 1235...
The result from queries just before the failure was:
< snip >
ALTER ONLINE TABLE t1 ADD KEY ix_b (b);
ALTER ONLINE TABLE t1 DROP KEY ix_b;
#-------- ONLINE: CREATE/DROP INDEX --------#
CREATE ONLINE INDEX ix_c ON t1 (c);
DROP ONLINE INDEX ix_c ON t1;
#-------- ONLINE: ADD INDEX default name --------#
ALTER ONLINE TABLE t1 ADD INDEX (b);
ALTER ONLINE TABLE t1 DROP INDEX b;
#-------- ONLINE: ALTER ADD nullable with default --------#
ALTER ONLINE TABLE t3 ADD INDEX ix_b (b);
SELECT * from t3 where b > 555 ORDER BY a LIMIT 5;
a b c d e
279 556 279 277 SomeVarchar 278 for testing
280 558 280 278 SomeVarchar 279 for testing
281 560 281 279 SomeVarchar 280 for testing
282 562 282 280 SomeVarchar 281 for testing
283 564 283 281 SomeVarchar 282 for testing
ALTER ONLINE TABLE t3 DROP INDEX ix_b;
#-------- ONLINE: ALTER ADD not-null with default --------#
ALTER ONLINE TABLE t3 ADD INDEX ix_c (c);
Regards,
--
John