Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log extension state changes #6512

Merged
merged 1 commit into from
Jan 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .unreleased/fix_6512
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixes: #6512 Log extension state changes
22 changes: 15 additions & 7 deletions src/extension.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ static enum ExtensionState extstate = EXTENSION_STATE_UNKNOWN;
*/
static Oid ts_extension_oid = InvalidOid;

static const char *extstate_str[] = {
[EXTENSION_STATE_UNKNOWN] = "unknown",
[EXTENSION_STATE_TRANSITIONING] = "transitioning",
[EXTENSION_STATE_CREATED] = "created",
[EXTENSION_STATE_NOT_INSTALLED] = "not installed",
};

static bool
extension_loader_present()
{
Expand Down Expand Up @@ -150,6 +157,10 @@ extension_set_state(enum ExtensionState newstate)
ts_catalog_reset();
break;
}
elog(DEBUG1,
"extension state changed: %s to %s",
extstate_str[extstate],
extstate_str[newstate]);
extstate = newstate;
return true;
}
Expand Down Expand Up @@ -261,6 +272,10 @@ ts_experimental_schema_name(void)
void
ts_extension_invalidate(void)
{
elog(DEBUG1,
"extension state invalidated: %s to %s",
extstate_str[extstate],
extstate_str[EXTENSION_STATE_UNKNOWN]);
extstate = EXTENSION_STATE_UNKNOWN;
extension_proxy_oid = InvalidOid;
}
Expand Down Expand Up @@ -335,13 +350,6 @@ ts_extension_is_proxy_table_relid(Oid relid)
}

#ifdef TS_DEBUG
static const char *extstate_str[] = {
[EXTENSION_STATE_UNKNOWN] = "unknown",
[EXTENSION_STATE_TRANSITIONING] = "transitioning",
[EXTENSION_STATE_CREATED] = "created",
[EXTENSION_STATE_NOT_INSTALLED] = "not installed",
};

TS_FUNCTION_INFO_V1(ts_extension_get_state);

Datum
Expand Down
13 changes: 7 additions & 6 deletions tsl/test/expected/bgw_scheduler_control.out
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,15 @@ SELECT ts_bgw_db_scheduler_test_run_and_wait_for_scheduler_finish(25, 0);
SELECT * FROM cleaned_bgw_log;
msg_no | application_name | msg
--------+------------------+-------------------------------------------------------------------------
0 | DB Scheduler | database scheduler for database (RANDOM) starting
1 | DB Scheduler | launching job 1000 "test_job_1b"
2 | DB Scheduler | [TESTING] Registered new background worker
3 | DB Scheduler | [TESTING] Wait until (RANDOM), started at (RANDOM)
0 | DB Scheduler | extension state changed: unknown to created
1 | DB Scheduler | database scheduler for database (RANDOM) starting
2 | DB Scheduler | launching job 1000 "test_job_1b"
3 | DB Scheduler | [TESTING] Registered new background worker
4 | DB Scheduler | [TESTING] Wait until (RANDOM), started at (RANDOM)
0 | test_job_1b | Execute job 1
1 | test_job_1b | job 1000 (test_job_1b) exiting with success: execution time (RANDOM) ms
4 | DB Scheduler | database scheduler for database (RANDOM) exiting
(7 rows)
5 | DB Scheduler | database scheduler for database (RANDOM) exiting
(8 rows)

ALTER DATABASE :TEST_DBNAME RESET timescaledb.bgw_log_level;
SELECT pg_reload_conf();
Expand Down
Loading