diff --git a/pkg/resources/external_table.go b/pkg/resources/external_table.go index 2871749204..1670fcc2de 100644 --- a/pkg/resources/external_table.go +++ b/pkg/resources/external_table.go @@ -5,6 +5,7 @@ import ( "database/sql" "encoding/csv" "fmt" + "log" "strings" "github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/snowflake" @@ -150,8 +151,8 @@ type externalTableID struct { ExternalTableName string } -//String() takes in a externalTableID object and returns a pipe-delimited string: -//DatabaseName|SchemaName|ExternalTableName +// String() takes in a externalTableID object and returns a pipe-delimited string: +// DatabaseName|SchemaName|ExternalTableName func (si *externalTableID) String() (string, error) { var buf bytes.Buffer csvWriter := csv.NewWriter(&buf) @@ -276,7 +277,7 @@ func ReadExternalTable(d *schema.ResourceData, meta interface{}) error { externalTable, err := snowflake.ScanExternalTable(row) if err != nil { if err.Error() == snowflake.ErrNoRowInRS { - fmt.Println("Good !!") + log.Printf("[DEBUG] external table (%s) not found", d.Id()) d.SetId("") return nil } else { diff --git a/pkg/resources/stage.go b/pkg/resources/stage.go index 4b407827f1..24ce166782 100644 --- a/pkg/resources/stage.go +++ b/pkg/resources/stage.go @@ -11,6 +11,7 @@ import ( "github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/snowflake" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/pkg/errors" + "github.com/snowflakedb/gosnowflake" ) const ( @@ -241,8 +242,15 @@ func ReadStage(d *schema.ResourceData, meta interface{}) error { d.SetId("") return nil } - if err != nil { - return err + + if driverErr, ok := err.(*gosnowflake.SnowflakeError); ok { + // 002003 (02000): SQL compilation error: + // 'XXX' does not exist or not authorized. + if driverErr.Number == 2003 { + log.Printf("[DEBUG] stage (%s) not found", d.Id()) + d.SetId("") + return nil + } } sq := snowflake.Stage(stage, dbName, schema).Show()