This commit is contained in:
Arthur Passos 2024-11-20 15:25:27 -08:00 committed by GitHub
commit 80344fc360
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -268,6 +268,13 @@ namespace
authentication_methods.push_back(ast_authentication_data); authentication_methods.push_back(ast_authentication_data);
} }
// if the first authentication method parsed is of type no_password, then we should not try to parse any further
// as it cannot co-exist with other authentication types
if (authentication_methods.back()->type && authentication_methods.back()->type.value() == AuthenticationType::NO_PASSWORD)
{
return true;
}
// Need to save current position, process comma and only update real position in case there is an authentication method after // Need to save current position, process comma and only update real position in case there is an authentication method after
// the comma. Otherwise, position should not be changed as it needs to be processed by other parsers and possibly throw error // the comma. Otherwise, position should not be changed as it needs to be processed by other parsers and possibly throw error
// on trailing comma. // on trailing comma.
@ -276,7 +283,7 @@ namespace
{ {
std::shared_ptr<ASTAuthenticationData> ast_authentication_data; std::shared_ptr<ASTAuthenticationData> ast_authentication_data;
if (!parseAuthenticationData(aux_pos, expected, ast_authentication_data, false, true, should_parse_no_password)) if (!parseAuthenticationData(aux_pos, expected, ast_authentication_data, false, true, false))
{ {
break; break;
} }
@ -285,7 +292,7 @@ namespace
authentication_methods.push_back(ast_authentication_data); authentication_methods.push_back(ast_authentication_data);
} }
return !authentication_methods.empty(); return true;
}); });
} }