diff --git a/tests-fuzz/targets/fuzz_create_database.rs b/tests-fuzz/targets/fuzz_create_database.rs index 0c7129df70..b59ed4fe8e 100644 --- a/tests-fuzz/targets/fuzz_create_database.rs +++ b/tests-fuzz/targets/fuzz_create_database.rs @@ -17,7 +17,7 @@ use common_telemetry::info; use libfuzzer_sys::arbitrary::{Arbitrary, Unstructured}; use libfuzzer_sys::fuzz_target; -use rand::SeedableRng; +use rand::{Rng, SeedableRng}; use rand_chacha::ChaChaRng; use snafu::ResultExt; use sqlx::{MySql, Pool}; @@ -57,11 +57,13 @@ impl Arbitrary<'_> for FuzzInput { fn generate_expr(input: FuzzInput) -> Result { let mut rng = ChaChaRng::seed_from_u64(input.seed); + let if_not_exists = rng.gen_bool(0.5); let create_database_generator = CreateDatabaseExprGeneratorBuilder::default() .name_generator(Box::new(MappedGenerator::new( WordGenerator, merge_two_word_map_fn(random_capitalize_map, uppercase_and_keyword_backtick_map), ))) + .if_not_exists(if_not_exists) .build() .unwrap(); create_database_generator.generate(&mut rng) diff --git a/tests-fuzz/targets/fuzz_create_table.rs b/tests-fuzz/targets/fuzz_create_table.rs index 3d8bc1db9e..60bcb1628b 100644 --- a/tests-fuzz/targets/fuzz_create_table.rs +++ b/tests-fuzz/targets/fuzz_create_table.rs @@ -62,6 +62,7 @@ impl Arbitrary<'_> for FuzzInput { fn generate_expr(input: FuzzInput) -> Result { let mut rng = ChaChaRng::seed_from_u64(input.seed); let metric_engine = rng.gen_bool(0.5); + let if_not_exists = rng.gen_bool(0.5); if metric_engine { let create_table_generator = CreateTableExprGeneratorBuilder::default() .name_generator(Box::new(MappedGenerator::new( @@ -70,6 +71,7 @@ fn generate_expr(input: FuzzInput) -> Result { ))) .columns(input.columns) .engine("metric") + .if_not_exists(if_not_exists) .with_clause([("physical_metric_table".to_string(), "".to_string())]) .build() .unwrap(); @@ -82,6 +84,7 @@ fn generate_expr(input: FuzzInput) -> Result { ))) .columns(input.columns) .engine("mito") + .if_not_exists(if_not_exists) .build() .unwrap(); create_table_generator.generate(&mut rng)