MCPcopy Create free account
hub / github.com/dolthub/doltgresql / RenameRootObject

Method RenameRootObject

core/procedures/root_object.go:220–239  ·  view source on GitHub ↗

RenameRootObject implements the interface objinterface.Collection.

(ctx context.Context, oldName id.Id, newName id.Id)

Source from the content-addressed store, hash-verified

218
219// RenameRootObject implements the interface objinterface.Collection.
220func (pgp *Collection) RenameRootObject(ctx context.Context, oldName id.Id, newName id.Id) error {
221 if !oldName.IsValid() || !newName.IsValid() || oldName.Section() != newName.Section() || oldName.Section() != id.Section_Procedure {
222 return errors.New("cannot rename procedure due to invalid name")
223 }
224 oldProcName := id.Procedure(oldName)
225 newProcName := id.Procedure(newName)
226 if oldProcName.ParameterCount() != newProcName.ParameterCount() {
227 return errors.Newf(`old procedure id had "%d" parameters, new procedure id has "%d" parameters`,
228 oldProcName.ParameterCount(), newProcName.ParameterCount())
229 }
230 proc, err := pgp.GetProcedure(ctx, oldProcName)
231 if err != nil {
232 return err
233 }
234 if err = pgp.DropProcedure(ctx, oldProcName); err != nil {
235 return err
236 }
237 proc.ID = newProcName
238 return pgp.AddProcedure(ctx, proc)
239}
240
241// ResolveName implements the interface objinterface.Collection.
242func (pgp *Collection) ResolveName(ctx context.Context, name doltdb.TableName) (doltdb.TableName, id.Id, error) {

Callers

nothing calls this directly

Calls 7

GetProcedureMethod · 0.95
DropProcedureMethod · 0.95
AddProcedureMethod · 0.95
ProcedureTypeAlias · 0.92
SectionMethod · 0.80
IsValidMethod · 0.45
ParameterCountMethod · 0.45

Tested by

no test coverage detected