Skip to content

Commit faa2671

Browse files
committed
readyset-adapter: Add ALTER READYSET SET LOG LEVEL statement
This accepts a string argument, e.g.: ``` readyset> ALTER READYSET SET LOG LEVEL 'trace'; Query OK, 0 rows affected (0.00 sec) ``` Addresses: REA-4986 Release-Note-Core: You can now set the log level at runtime using the `ALTER READYSET SET LOG LEVEL` statement or the `/log_level` HTTP endpoint. For example: `ALTER READYSET SET LOG LEVEL 'info,readyset_adapter=debug'`; or `curl -X POST -d 'info,readyset_adapter=debug' http://readyset:6033/log_level`. Change-Id: I6a6a6964c4609e41794d33dff7467d5db7585bda Reviewed-on: https://gerrit.readyset.name/c/readyset/+/10083 Tested-by: Buildkite CI Reviewed-by: Johnathan Davis <jcd@readyset.io>
1 parent 82aff8b commit faa2671

File tree

5 files changed

+21
-4
lines changed

5 files changed

+21
-4
lines changed

readyset-adapter/src/backend.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2596,6 +2596,12 @@ where
25962596
SqlQuery::AlterReadySet(AlterReadysetStatement::ExitMaintenanceMode) => {
25972597
self.noria.exit_maintenance_mode().await
25982598
}
2599+
SqlQuery::AlterReadySet(AlterReadysetStatement::SetLogLevel(directives)) => {
2600+
match readyset_tracing::set_log_level(directives) {
2601+
Ok(()) => Ok(noria_connector::QueryResult::Empty),
2602+
Err(e) => Err(internal_err!("Failed to set log level: {e}")),
2603+
}
2604+
}
25992605
SqlQuery::CreateRls(_create_rls) => {
26002606
unsupported!("CREATE RLS statement is not yet supported")
26012607
}

readyset-sql-parsing/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,11 @@ fn parse_alter(parser: &mut Parser, dialect: Dialect) -> Result<SqlQuery, Readys
383383
Ok(SqlQuery::AlterReadySet(
384384
AlterReadysetStatement::ExitMaintenanceMode,
385385
))
386+
} else if parser.parse_keywords(&[Keyword::SET, Keyword::LOG, Keyword::LEVEL]) {
387+
let directives = parser.parse_literal_string()?;
388+
Ok(SqlQuery::AlterReadySet(
389+
AlterReadysetStatement::SetLogLevel(directives),
390+
))
386391
} else {
387392
Err(ReadysetParsingError::ReadysetParsingError(
388393
"expected RESNAPSHOT TABLE, or ADD TABLES after READYSET".into(),

readyset-sql/src/analysis/visit.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,8 +1098,9 @@ pub fn walk_alter_readyset_statement<'a, V: Visitor<'a>>(
10981098
.tables
10991099
.iter()
11001100
.try_for_each(|table| visitor.visit_table(table)),
1101-
AlterReadysetStatement::EnterMaintenanceMode => Ok(()),
1102-
AlterReadysetStatement::ExitMaintenanceMode => Ok(()),
1101+
AlterReadysetStatement::EnterMaintenanceMode
1102+
| AlterReadysetStatement::ExitMaintenanceMode
1103+
| AlterReadysetStatement::SetLogLevel(_) => Ok(()),
11031104
}
11041105
}
11051106

readyset-sql/src/analysis/visit_mut.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1088,8 +1088,9 @@ pub fn walk_alter_readyset_statement<'a, V: VisitorMut<'a>>(
10881088
.tables
10891089
.iter_mut()
10901090
.try_for_each(|table| visitor.visit_table(table)),
1091-
AlterReadysetStatement::EnterMaintenanceMode => Ok(()),
1092-
AlterReadysetStatement::ExitMaintenanceMode => Ok(()),
1091+
AlterReadysetStatement::EnterMaintenanceMode
1092+
| AlterReadysetStatement::ExitMaintenanceMode
1093+
| AlterReadysetStatement::SetLogLevel(_) => Ok(()),
10931094
}
10941095
}
10951096

readyset-sql/src/ast/alter.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ pub enum AlterReadysetStatement {
415415
AddTables(AddTablesStatement),
416416
EnterMaintenanceMode,
417417
ExitMaintenanceMode,
418+
SetLogLevel(String),
418419
}
419420

420421
impl DialectDisplay for AlterReadysetStatement {
@@ -436,6 +437,9 @@ impl DialectDisplay for AlterReadysetStatement {
436437
Self::ExitMaintenanceMode => {
437438
write!(f, "EXIT MAINTENANCE MODE")
438439
}
440+
Self::SetLogLevel(level) => {
441+
write!(f, "SET LOG LEVEL '{}'", level)
442+
}
439443
})
440444
}
441445
}

0 commit comments

Comments
 (0)