This PR fixes a lock issue that happens while executing
`ALTER LIVE VIEW` query with the `REFRESH` command that
results in a exception. The problem is that lock is currently
being acquired in `InterpreterALterQuery.cpp`
in the `InterpreterAlterQuery::execute()` method and lock
is again being reacquired in `StorageLiveView.cpp` in the
` StorageLiveView::refresh` method. This removes that extra
lock.
Before fix:
```sql
--create table
CREATE TABLE test0 (
c0 UInt64
) ENGINE = MergeTree() PARTITION BY c0 ORDER BY c0;
-- enable experimental_live_view
:) SET allow_experimental_live_view=1
-- create live view;
:) CREATE LIVE VIEW live1 AS SELECT * FROM table0;
-- alter live view results in exception
:) ALTER LIVE VIEW live1 REFRESH;
...
...
Received exception from server (version 20.8.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: RWLockImpl::getLock(): RWLock is already locked in exclusive mode.
```
After fix:
```sql
:) ALTER LIVE VIEW live1 REFRESH;
ALTER LIVE VIEW live1
REFRESH
Ok.
0 rows in set. Elapsed: 0.016 sec.
```
* Updating test to check using PREWHERE in query against live view table.
* Updating test to check using PREWHERE in the stored query against the table that does
not support PREWHWERE.
* "lock_acquire_timeout" controls for how long a query will continue to
acquire each lock on its argument tables
* "lock_acquire_timeout_for_background_operations" is a per-table
setting for storages of *MergeTree family