@@ -147,40 +147,45 @@ export const TableRowComponent = ({
147147 try {
148148 setIsRemovingTable ( true )
149149
150- const serverName = getAnalyticsBucketFDWServerName ( bucketId )
151- const serverOptions = await getDecryptedParameters ( {
152- ref : project ?. ref ,
153- connectionString : project ?. connectionString ?? undefined ,
154- wrapper : wrapperInstance ,
155- } )
156- const formValues : Record < string , string > = {
157- wrapper_name : wrapperInstance . name ,
158- server_name : wrapperInstance . server_name ,
159- ...serverOptions ,
160- }
161- const targetSchemas = ( formValues [ 'supabase_target_schema' ] || '' )
162- . split ( ',' )
163- . map ( ( s ) => s . trim ( ) )
164- const wrapperTables = formatWrapperTables ( wrapperInstance , wrapperMeta ) . filter (
165- ( x ) => x . table_name !== table . name
166- )
150+ // [Joshen] Update FDW instance only if table is in FDW instance's tables
151+ // e.g for a namespace table that was added outside of the dashboard, it wouldn't be
152+ const isTableInWrapperInstance = wrapperInstance . tables . some ( ( x ) => x . name === table . name )
153+ if ( isTableInWrapperInstance ) {
154+ const serverName = getAnalyticsBucketFDWServerName ( bucketId )
155+ const serverOptions = await getDecryptedParameters ( {
156+ ref : project ?. ref ,
157+ connectionString : project ?. connectionString ?? undefined ,
158+ wrapper : wrapperInstance ,
159+ } )
160+ const formValues : Record < string , string > = {
161+ wrapper_name : wrapperInstance . name ,
162+ server_name : wrapperInstance . server_name ,
163+ ...serverOptions ,
164+ }
165+ const targetSchemas = ( formValues [ 'supabase_target_schema' ] || '' )
166+ . split ( ',' )
167+ . map ( ( s ) => s . trim ( ) )
168+ const wrapperTables = formatWrapperTables ( wrapperInstance , wrapperMeta ) . filter (
169+ ( x ) => x . table_name !== table . name
170+ )
167171
168- // [Joshen] Once Ivan's PR goes through, swap these out to just use useFDWDropForeignTableMutation
169- // https://github.com/supabase/supabase/pull/40206
170- await updateFDW ( {
171- projectRef : project ?. ref ,
172- connectionString : project ?. connectionString ,
173- wrapper : wrapperInstance ,
174- wrapperMeta,
175- formState : {
176- ...formValues ,
177- server_name : serverName ,
178- supabase_target_schema : uniq ( [ ...targetSchemas ] )
179- . filter ( Boolean )
180- . join ( ',' ) ,
181- } ,
182- tables : wrapperTables ,
183- } )
172+ // [Joshen] Once Ivan's PR goes through, swap these out to just use useFDWDropForeignTableMutation
173+ // https://github.com/supabase/supabase/pull/40206
174+ await updateFDW ( {
175+ projectRef : project ?. ref ,
176+ connectionString : project ?. connectionString ,
177+ wrapper : wrapperInstance ,
178+ wrapperMeta,
179+ formState : {
180+ ...formValues ,
181+ server_name : serverName ,
182+ supabase_target_schema : uniq ( [ ...targetSchemas ] )
183+ . filter ( Boolean )
184+ . join ( ',' ) ,
185+ } ,
186+ tables : wrapperTables ,
187+ } )
188+ }
184189
185190 const wrapperValues = convertKVStringArrayToJson ( wrapperInstance ?. server_options ?? [ ] )
186191 await deleteNamespaceTable ( {
0 commit comments