CreateView creates a new view in the schema. Returns an error if the view already exists.
(viewName string, definition string, dependencyColumns []*storepb.DependencyColumn)
| 608 | // CreateView creates a new view in the schema. |
| 609 | // Returns an error if the view already exists. |
| 610 | func (s *SchemaMetadata) CreateView(viewName string, definition string, dependencyColumns []*storepb.DependencyColumn) (*storepb.ViewMetadata, error) { |
| 611 | // Check if view already exists |
| 612 | if s.GetView(viewName) != nil { |
| 613 | return nil, errors.Errorf("view %q already exists in schema %q", viewName, s.proto.Name) |
| 614 | } |
| 615 | |
| 616 | // Create new view proto |
| 617 | newViewProto := &storepb.ViewMetadata{ |
| 618 | Name: viewName, |
| 619 | Definition: definition, |
| 620 | DependencyColumns: dependencyColumns, |
| 621 | } |
| 622 | |
| 623 | // Add to proto's view list |
| 624 | s.proto.Views = append(s.proto.Views, newViewProto) |
| 625 | |
| 626 | // Add to internal map |
| 627 | viewID := normalizeNameByCaseSensitivity(viewName, s.isObjectCaseSensitive) |
| 628 | s.internalViews[viewID] = newViewProto |
| 629 | |
| 630 | return newViewProto, nil |
| 631 | } |
| 632 | |
| 633 | // DropView drops a view from the schema. |
| 634 | // Returns an error if the view does not exist. |
nothing calls this directly
no test coverage detected