snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled

This commit is contained in:
upstream-mirror
2026-09-16 02:17:34 +05:00
commit 0f4df23290
7340 changed files with 238743 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
package catalog
import (
"github.com/sqlc-dev/sqlc/internal/sql/ast"
)
func (c *Catalog) createExtension(stmt *ast.CreateExtensionStmt) error {
if stmt.Extname == nil {
return nil
}
// TODO: Implement IF NOT EXISTS
return c.loadExtension(*stmt.Extname)
}
// loadExtension adds what the engine knows of the named extension — or of
// the virtual table module that stands for one — to the default schema,
// once. An engine without extension data, or without data for this one,
// adds nothing.
func (c *Catalog) loadExtension(name string) error {
if _, exists := c.Extensions[name]; exists {
return nil
}
if c.LoadExtension == nil {
return nil
}
ext := c.LoadExtension(name)
if ext == nil {
return nil
}
if c.Extensions == nil {
c.Extensions = map[string]struct{}{}
}
c.Extensions[name] = struct{}{}
s, err := c.getSchema(c.DefaultSchema)
if err != nil {
return err
}
// TODO: Error on duplicate functions
s.Funcs = append(s.Funcs, ext.Funcs...)
return nil
}