timescaledb/test/sql/updates/pre.testing.sql
Mats Kindahl 231549184c Break out superuser operations in update tests
In order to support smoke-testing with a single server, the update
tests are refactored to not require a `postgres` user with full
privileges.

To support both running smoke tests and update tests, the following
changes where made:

- Database creation code was factored out of tests and is only executed
  for update tests.
- Since the default for `docker_pgscript` was to use the `postgres`
  database and the database creation code also switched database to
  `single` as part of the exection, the default of `docker_pgscript` is
  now changed to `single`.
- Parts of tests that changes roles during execution was removed since
  it is more suitable for a regression test. Some `GRANT` statements
  were kept for the update tests since they test that non-superuser
  privileges are propagated correctly.
- Operations that require escalated privileges are factored out into
  support functions that execute the original code for update tests and
  are no-ops for smoke tests.
- A dedicated `test_update_smoke` script was added that can run a smoke
  test against a single server.
2021-03-05 17:50:14 +01:00

21 lines
626 B
PL/PgSQL

-- This file and its contents are licensed under the Apache License 2.0.
-- Please see the included NOTICE for copyright information and
-- LICENSE-APACHE for a copy of the license.
-- These functions are used when running normal update tests.
CREATE SCHEMA IF NOT EXISTS _timescaledb_testing;
CREATE OR REPLACE PROCEDURE _timescaledb_testing.restart_dimension_slice_id()
LANGUAGE SQL
AS $$
ALTER SEQUENCE _timescaledb_catalog.dimension_slice_id_seq RESTART WITH 100;
$$;
CREATE OR REPLACE PROCEDURE _timescaledb_testing.stop_workers()
LANGUAGE SQL
AS $$
SELECT _timescaledb_internal.stop_background_workers();
$$;