It is not clear to me why we are not calling `insertSubQueryId` here itself. That is we have the level information already so we can populate the ids for the query corresponding to this QueryDataSource here itself instead of saving it inside a map and doing it later. am I missing something? 