extractViewDefinitions is a helper function to extract view definitions from DuckDB
(ctx *sql.Context, schemaName string, viewName string)
| 329 | func (d *Database) CreateTemporaryTable(ctx *sql.Context, name string, schema sql.PrimaryKeySchema, collation sql.CollationID) error { |
| 330 | d.mu.Lock() |
| 331 | defer d.mu.Unlock() |
| 332 | return d.createAllTable(ctx, name, schema, collation, "", true) |
| 333 | } |
| 334 | |
| 335 | // DropTable implements sql.TableDropper. |
| 336 | func (d *Database) DropTable(ctx *sql.Context, name string) error { |
| 337 | d.mu.Lock() |
| 338 | defer d.mu.Unlock() |
| 339 | |
| 340 | _, err := adapter.Exec(ctx, fmt.Sprintf(`DROP TABLE %s`, FullTableName(d.catalog, d.name, name))) |
| 341 | |
| 342 | if err != nil { |
| 343 | if IsDuckDBTableNotFoundError(err) { |
| 344 | return sql.ErrTableNotFound.New(name) |
| 345 | } |
| 346 | return ErrDuckDB.New(err) |
| 347 | } |
| 348 | return nil |
| 349 | } |
| 350 | |
| 351 | // RenameTable implements sql.TableRenamer. |
| 352 | func (d *Database) RenameTable(ctx *sql.Context, oldName string, newName string) error { |
| 353 | d.mu.Lock() |
| 354 | defer d.mu.Unlock() |
| 355 | |
| 356 | _, err := adapter.Exec(ctx, fmt.Sprintf(`ALTER TABLE %s RENAME TO "%s"`, FullTableName(d.catalog, d.name, oldName), newName)) |
| 357 | if err != nil { |
| 358 | if IsDuckDBTableNotFoundError(err) { |
| 359 | return sql.ErrTableNotFound.New(oldName) |
| 360 | } |
| 361 | if IsDuckDBTableAlreadyExistsError(err) { |
| 362 | return sql.ErrTableAlreadyExists.New(newName) |
| 363 | } |
| 364 | return ErrDuckDB.New(err) |
| 365 | } |
| 366 | return nil |
| 367 | } |
| 368 | |
| 369 | // extractViewDefinitions is a helper function to extract view definitions from DuckDB |
| 370 | func (d *Database) extractViewDefinitions(ctx *sql.Context, schemaName string, viewName string) ([]sql.ViewDefinition, error) { |
| 371 | query := ` |
| 372 | SELECT DISTINCT view_name, sql, comment |
| 373 | FROM duckdb_views() |
| 374 | WHERE schema_name = ? AND NOT internal |
no test coverage detected