extension.go 580 B

1234567891011121314151617181920212223242526272829
  1. package catalog
  2. import (
  3. "github.com/kyleconroy/sqlc/internal/sql/ast"
  4. )
  5. func (c *Catalog) createExtension(stmt *ast.CreateExtensionStmt) error {
  6. if stmt.Extname == nil {
  7. return nil
  8. }
  9. // TODO: Implement IF NOT EXISTS
  10. if _, exists := c.Extensions[*stmt.Extname]; exists {
  11. return nil
  12. }
  13. if c.LoadExtension == nil {
  14. return nil
  15. }
  16. ext := c.LoadExtension(*stmt.Extname)
  17. if ext == nil {
  18. return nil
  19. }
  20. s, err := c.getSchema(c.DefaultSchema)
  21. if err != nil {
  22. return err
  23. }
  24. // TODO: Error on duplicate functions
  25. s.Funcs = append(s.Funcs, ext.Funcs...)
  26. return nil
  27. }