diff --git a/src/sql.rs b/src/sql.rs
index 65c2a8d75b1017b07e48e3db23e12c702e1c4ad8..39d639026cebe60959342ede055f6189bf36a5b3 100644
--- a/src/sql.rs
+++ b/src/sql.rs
@@ -1,6 +1,6 @@
 //! Clusterwide SQL query execution.
 
-use crate::schema::{CreateSpaceParams, DistributionParam, Field, ShardingFn};
+use crate::schema::{wait_for_ddl_commit, CreateSpaceParams, DistributionParam, Field, ShardingFn};
 use crate::sql::router::RouterRuntime;
 use crate::sql::storage::StorageRuntime;
 use crate::traft::error::Error;
@@ -188,6 +188,7 @@ fn reenterable_ddl_request(
         );
 
         node.wait_index(index, deadline.duration_since(Instant::now()))?;
+        wait_for_ddl_commit(index, deadline.duration_since(Instant::now()))?;
 
         if term != raft::Storage::term(&node.raft_storage, index)? {
             // Leader has changed and the entry got rolled back, retry.