@@ -31,6 +31,7 @@ import { PostgresTableSchemaColumn } from 'src/engine/metadata-modules/remote-se
31
31
import { fetchTableColumns } from 'src/engine/metadata-modules/remote-server/remote-table/utils/fetch-table-columns.util' ;
32
32
import { ForeignTableService } from 'src/engine/metadata-modules/remote-server/remote-table/foreign-table/foreign-table.service' ;
33
33
import { RemoteTableSchemaUpdateService } from 'src/engine/metadata-modules/remote-server/remote-table/remote-table-schema-update/remote-table-schema-update.service' ;
34
+ import { sortDistantTables } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/utils/sort-distant-tables.util' ;
34
35
35
36
export class RemoteTableService {
36
37
private readonly logger = new Logger ( RemoteTableService . name ) ;
@@ -82,26 +83,25 @@ export class RemoteTableService {
82
83
workspaceId ,
83
84
) ;
84
85
85
- if ( currentRemoteTables . length === 0 || ! shouldFetchPendingSchemaUpdates ) {
86
- const distantTablesWithStatus = Object . keys ( distantTables ) . map (
87
- ( tableName ) => ( {
86
+ const shouldGetTablesWithPendingSchemaUpdates =
87
+ currentRemoteTables . length > 0 && shouldFetchPendingSchemaUpdates ;
88
+
89
+ const distantTablesWithStatus = shouldGetTablesWithPendingSchemaUpdates
90
+ ? await this . remoteTableSchemaUpdateService . getDistantTablesWithUpdates ( {
91
+ remoteServerSchema : remoteServer . schema ,
92
+ workspaceId,
93
+ remoteTables : currentRemoteTables ,
94
+ distantTables,
95
+ } )
96
+ : Object . keys ( distantTables ) . map ( ( tableName ) => ( {
88
97
name : tableName ,
89
98
schema : remoteServer . schema ,
90
99
status : currentRemoteTableDistantNames . includes ( tableName )
91
100
? RemoteTableStatus . SYNCED
92
101
: RemoteTableStatus . NOT_SYNCED ,
93
- } ) ,
94
- ) ;
102
+ } ) ) ;
95
103
96
- return distantTablesWithStatus ;
97
- }
98
-
99
- return this . remoteTableSchemaUpdateService . getDistantTablesWithUpdates ( {
100
- remoteServerSchema : remoteServer . schema ,
101
- workspaceId,
102
- remoteTables : currentRemoteTables ,
103
- distantTables,
104
- } ) ;
104
+ return distantTablesWithStatus . sort ( sortDistantTables ) ;
105
105
}
106
106
107
107
public async findRemoteTablesByServerId ( {
0 commit comments