Skip to content

Commit d1f254e

Browse files
SNOW-2038030: Add check for expired session when getting result with ID
1 parent 444a2c1 commit d1f254e

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

Snowflake.Data/Core/SFStatement.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,12 @@ internal async Task<SFBaseResultSet> GetResultWithIdAsync(string resultId, Cance
572572
var req = BuildResultRequestWithId(resultId);
573573
QueryExecResponse response = null;
574574
response = await _restRequester.GetAsync<QueryExecResponse>(req, cancellationToken).ConfigureAwait(false);
575+
while (SessionExpired(response))
576+
{
577+
await SfSession.renewSessionAsync(cancellationToken).ConfigureAwait(false);
578+
req.authorizationToken = string.Format(SF_AUTHORIZATION_SNOWFLAKE_FMT, SfSession.sessionToken);
579+
response = await _restRequester.GetAsync<QueryExecResponse>(req, cancellationToken).ConfigureAwait(false);
580+
}
575581
return BuildResultSet(response, cancellationToken);
576582
}
577583

@@ -580,6 +586,12 @@ internal SFBaseResultSet GetResultWithId(string resultId)
580586
var req = BuildResultRequestWithId(resultId);
581587
QueryExecResponse response = null;
582588
response = _restRequester.Get<QueryExecResponse>(req);
589+
while (SessionExpired(response))
590+
{
591+
SfSession.renewSession();
592+
req.authorizationToken = string.Format(SF_AUTHORIZATION_SNOWFLAKE_FMT, SfSession.sessionToken);
593+
response = _restRequester.Get<QueryExecResponse>(req);
594+
}
583595
return BuildResultSet(response, CancellationToken.None);
584596
}
585597

0 commit comments

Comments
 (0)