-
Notifications
You must be signed in to change notification settings - Fork 7
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
feat: SQLNESS SLEEP <DURATION_STRING> #67
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
sqlness/src/interceptor/sleep.rs
Outdated
@@ -74,7 +75,9 @@ impl InterceptorFactory for SleepInterceptorFactory { | |||
prefix: PREFIX.to_string(), | |||
msg: format!("Failed to parse milliseconds: {}", e), | |||
})?; | |||
Ok(Box::new(SleepInterceptor { milliseconds })) | |||
Ok(Box::new(SleepInterceptor { | |||
duration: Duration::from_millis(milliseconds), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not what I mean, I expect the params used in template is duration, like -- SQLNESS SLEEP 15s
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Rationale
Some test would require a certain amount of time to output final results(i.e. continous aggregate with some amount of delay)
So it make sense for sqlness to have a
sleep
function, i.e. mysql&postgre sql both have sleep function, but it could be useful to have a sleep function in test client side anyway.Detailed Changes
add a
-- SQLNESS SLEEP <Milliseconds>
to sleep for given time in milliseconds before executing query,which internally just spawn a new thread for sleeping when sleep is needed, this is for simplicity sake, and also to allow cross-runtime
async
sleep. The overhead of spawn a thread is deemed low since the query is sleeping anyway, the only reason why we can't just blocking sleep directly is because it'sasync
up there so blocking aasync
task make a lot of trouble to anyasync
runtime.Test Plan
a simple test added for waiting given time