I believe there's a misconception here about how Partial Cache is designed to work.
When you send a query to a view configured with Partial Cache, Denodo will store in the cache that query and its results. When a new query comes in, Denodo will check in the cache if that query (or a subset of it) has been executed in the past, and if it has, it will retrieve the cached results instead of accessing the original sources in real time.
In your case, the first time you send the "Query 1" (`SELECT * FROM client`), Denodo will access the cache to see if that query has been run first. Because it hasn't, it will go and fetch the results from the real source (Excel, 10 rows) and it will store them in the cache. The next time you run the same query, Denodo will just fetch those results from the cache, without accessing the Excel doc.
Your second query, `SELECT * FROM client WHERE id = 11`, is a subset of the first one, meaning Denodo can resolve the same query accessing the cached result set and applying the extra filters (`WHERE id = 11`) on top. In this case, Denodo will get the cached data (10 rows) and apply the WHERE condition on it, and that's why you're not seeing the new row added to the Excel document.
If your first query was `SELECT * FROM client WHERE id = 1`, then when issuing the second query (`WHERE client = 11`), Denodo would go to the original source, as that query is "unknown" to it.
For more details about Partial Caching, see more here: