code: func (d *ddl) GetInfoSchemaWithInterceptor(ctx sessionctx.Context) infoschema.InfoSchema {
  	is := d.infoHandle.Get()
  
  	d.mu.RLock()
  	defer d.mu.RUnlock()
  	return d.mu.interceptor.OnGetInfoSchema(ctx, is)
  }
docs: // GetInfoSchemaWithInterceptor gets the infoschema binding to d. It's exported for testing.
  // Please don't use this function, it is used by TestParallelDDLBeforeRunDDLJob to intercept the calling of d.infoHandle.Get(), use d.infoHandle.Get() instead.
  // Otherwise, the TestParallelDDLBeforeRunDDLJob will hang up forever.