(stmt *ast.DropFunctionStmt)
| 94 | } |
| 95 | |
| 96 | func (c *Catalog) dropFunction(stmt *ast.DropFunctionStmt) error { |
| 97 | for _, spec := range stmt.Funcs { |
| 98 | ns := spec.Name.Schema |
| 99 | if ns == "" { |
| 100 | ns = c.DefaultSchema |
| 101 | } |
| 102 | s, err := c.getSchema(ns) |
| 103 | if errors.Is(err, sqlerr.NotFound) && stmt.MissingOk { |
| 104 | continue |
| 105 | } else if err != nil { |
| 106 | return err |
| 107 | } |
| 108 | var idx int |
| 109 | if spec.HasArgs { |
| 110 | _, idx, err = s.getFunc(spec.Name, spec.Args) |
| 111 | } else { |
| 112 | _, idx, err = s.getFuncByName(spec.Name) |
| 113 | } |
| 114 | if errors.Is(err, sqlerr.NotFound) && stmt.MissingOk { |
| 115 | continue |
| 116 | } else if err != nil { |
| 117 | return err |
| 118 | } |
| 119 | s.Funcs = append(s.Funcs[:idx], s.Funcs[idx+1:]...) |
| 120 | } |
| 121 | return nil |
| 122 | } |
no test coverage detected