Duplicate the existing index tests to use hash index and make sure that
it works correctly. We rename the existing file to be able to have
tests for all the different kinds of indexes.
We also rename the existing `explain_anonymize` to
`explain_analyze_anonymize` and introduce a non-analyze version with
the original name.
It also modifies the permissions of `_timescaledb_debug` schema and
`_timescaledb_debug.is_compressed_tid` function to make sure we can use
it correctly.
Add check that SELECT FOR UPDATE does not crash as well as an isolation
test to make sure that it locks rows properly.
Also adds a debug function to check if a TID is for a compressed tuple.
The extension state is not easily accessible in release builds, which
makes debugging issue with the loader very difficult. This commit
introduces a new schema `_timescaledb_debug` and makes the function
`ts_extension_get_state` available also in release builds as
`_timescaledb_debug.extension_state`.
See #1682
This will move the definitions of `debug_waitpoint_enable`,
`debug_waitpoint_disable`, and `debug_waitpoint_id` to always be
defined for debug builds and modify existing tests accordingly.
This means that it is no longer necessary to generate isolation test
files from templates (in most cases), and it will be straightforward to
use these functions in debug builds.
The debug utilities can be disabled by setting the option
`ENABLE_DEBUG_UTILS` to `OFF`.