MCPcopy Create free account
hub / github.com/bytebase/bytebase / getParserEngine

Method getParserEngine

backend/api/v1/database_service.go:954–983  ·  view source on GitHub ↗
(ctx context.Context, request *v1pb.DiffSchemaRequest)

Source from the content-addressed store, hash-verified

952}
953
954func (s *DatabaseService) getParserEngine(ctx context.Context, request *v1pb.DiffSchemaRequest) (storepb.Engine, error) {
955 var instanceID string
956
957 if strings.Contains(request.Name, common.ChangelogPrefix) {
958 insID, _, _, err := common.GetInstanceDatabaseChangelogID(request.Name)
959 if err != nil {
960 return storepb.Engine_ENGINE_UNSPECIFIED, connect.NewError(connect.CodeInvalidArgument, errors.Errorf("%v", err.Error()))
961 }
962 instanceID = insID
963 } else {
964 insID, _, err := common.GetInstanceDatabaseID(request.Name)
965 if err != nil {
966 return storepb.Engine_ENGINE_UNSPECIFIED, connect.NewError(connect.CodeInvalidArgument, errors.Errorf("%v", err.Error()))
967 }
968 instanceID = insID
969 }
970
971 instance, err := s.store.GetInstance(ctx, &store.FindInstanceMessage{
972 Workspace: common.GetWorkspaceIDFromContext(ctx),
973 ResourceID: &instanceID,
974 })
975 if err != nil {
976 return storepb.Engine_ENGINE_UNSPECIFIED, errors.Wrapf(err, "failed to get instance %s", instanceID)
977 }
978 if instance == nil {
979 return storepb.Engine_ENGINE_UNSPECIFIED, connect.NewError(connect.CodeNotFound, errors.Errorf("instance %q not found", instanceID))
980 }
981
982 return common.ConvertToParserEngine(instance.Metadata.GetEngine())
983}
984
985func (s *DatabaseService) convertToDatabase(ctx context.Context, database *store.DatabaseMessage) (*v1pb.Database, error) {
986 instance, err := s.store.GetInstance(ctx, &store.FindInstanceMessage{

Callers 2

DiffSchemaMethod · 0.95
getTargetDBMetadataMethod · 0.95

Calls 8

GetInstanceDatabaseIDFunction · 0.92
ConvertToParserEngineFunction · 0.92
ErrorfMethod · 0.80
GetInstanceMethod · 0.65
ErrorMethod · 0.45
GetEngineMethod · 0.45

Tested by

no test coverage detected