Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
At Slack, we noticed that we're dropping logs for all queries of type
STREAM_EXECUTE
at the vttablet level. We run with thequerylog-filter-tag
option to determine what queries should be logged. The reason we were dropping all the logs for stream queries is because theStream()
codepath overwrites theOriginalSQL
in logstats, which we rely on for checking if we should log this query here. This PR fixes that by not overwriting that field.More details
The bug seems to be in the Stream vttablet method, we overwrite
OriginalSQL
to the version without the comments. In the callback that we pass toexecRequest
, we end up callingSplitMarginComments
which strips comments before invokingStream()
. So, in the stream context, we don’t have the comments attached to the sql. This is fine because execRequest wraps the entire thing, and it has the full query with the comment.I thought about two possible fixes:
Testing
Added a unit test to ensure we preserve comments in the stream path.