@@ -143,7 +143,13 @@ module.exports = {
143143 } ) ;
144144 } ,
145145
146- async retrieveEntitiesData ( schemaName , entitiesNames , recordSamplingSettings , includePartitions = false ) {
146+ async retrieveEntitiesData (
147+ schemaName ,
148+ entitiesNames ,
149+ recordSamplingSettings ,
150+ includePartitions = false ,
151+ ignoreUdfUdpTriggers = false ,
152+ ) {
147153 const userDefinedTypes = await this . _retrieveUserDefinedTypes ( schemaName ) ;
148154 const schemaOidResult = await db . queryTolerant ( queryConstants . GET_NAMESPACE_OID , [ schemaName ] , true ) ;
149155 const schemaOid = schemaOidResult ?. oid ;
@@ -168,16 +174,20 @@ module.exports = {
168174 schemaOid ,
169175 schemaName ,
170176 userDefinedTypes ,
177+ ignoreUdfUdpTriggers ,
171178 ) ,
172179 ) ;
173180
174- const views = await mapPromises ( viewsNames , _ . bind ( this . _retrieveSingleViewData , this , schemaOid , schemaName ) ) ;
181+ const views = await mapPromises (
182+ viewsNames ,
183+ _ . bind ( this . _retrieveSingleViewData , this , schemaOid , schemaName , ignoreUdfUdpTriggers ) ,
184+ ) ;
175185
176186 return { views, tables, modelDefinitions : getJsonSchema ( userDefinedTypes ) } ;
177187 } ,
178188
179- async retrieveSchemaLevelData ( schemaName , ignoreUdfUdp ) {
180- if ( ignoreUdfUdp ) {
189+ async retrieveSchemaLevelData ( schemaName , ignoreUdfUdpTriggers ) {
190+ if ( ignoreUdfUdpTriggers ) {
181191 logger . info ( 'Functions and procedures ignored' ) ;
182192
183193 return { functions : [ ] , procedures : [ ] } ;
@@ -251,6 +261,7 @@ module.exports = {
251261 schemaOid ,
252262 schemaName ,
253263 userDefinedTypes ,
264+ ignoreUdfUdpTriggers ,
254265 { tableName, isParentPartitioned } ,
255266 ) {
256267 logger . progress ( 'Get table data' , schemaName , tableName ) ;
@@ -274,11 +285,7 @@ module.exports = {
274285 const tableConstraintsResult = await db . queryTolerant ( queryConstants . GET_TABLE_CONSTRAINTS , [ tableOid ] ) ;
275286 const tableIndexesResult = await db . queryTolerant ( getGetIndexesQuery ( version ) , [ tableOid ] ) ;
276287 const tableForeignKeys = await db . queryTolerant ( queryConstants . GET_TABLE_FOREIGN_KEYS , [ tableOid ] ) ;
277- const triggersData = await db . queryTolerant ( queryConstants . GET_TRIGGERS , [ schemaName , tableName ] ) ;
278- const triggersAdditionalData = await db . queryTolerant ( queryConstants . GET_TRIGGERS_ADDITIONAL_DATA , [
279- schemaOid ,
280- tableOid ,
281- ] ) ;
288+ const triggers = await this . _getTriggers ( schemaName , tableName , schemaOid , tableOid , ignoreUdfUdpTriggers ) ;
282289
283290 const partitioning = prepareTablePartition ( partitionResult , tableColumns ) ;
284291 const tableLevelProperties = prepareTableLevelData ( tableLevelData , tableToastOptions ) ;
@@ -287,7 +294,6 @@ module.exports = {
287294 const tableConstraint = prepareTableConstraints ( tableConstraintsResult , tableColumns , tableIndexesResult ) ;
288295 const tableIndexes = prepareTableIndexes ( tableIndexesResult ) ;
289296 const relationships = prepareForeignKeys ( tableForeignKeys , tableName , schemaName , tableColumns ) ;
290- const triggers = getTriggers ( triggersData , triggersAdditionalData ) ;
291297
292298 const tableData = {
293299 partitioning,
@@ -322,6 +328,22 @@ module.exports = {
322328 } ;
323329 } ,
324330
331+ async _getTriggers ( schemaName , objectName , schemaOid , objectOid , ignoreUdfUdpTriggers ) {
332+ if ( ignoreUdfUdpTriggers ) {
333+ logger . info ( 'Triggers ignored' ) ;
334+
335+ return [ ] ;
336+ }
337+
338+ const triggersData = await db . queryTolerant ( queryConstants . GET_TRIGGERS , [ schemaName , objectName ] ) ;
339+ const triggersAdditionalData = await db . queryTolerant ( queryConstants . GET_TRIGGERS_ADDITIONAL_DATA , [
340+ schemaOid ,
341+ objectOid ,
342+ ] ) ;
343+
344+ return getTriggers ( triggersData , triggersAdditionalData ) ;
345+ } ,
346+
325347 async _getTableColumns ( tableName , schemaName , tableOid ) {
326348 logger . progress ( 'Get columns' , schemaName , tableName ) ;
327349
@@ -355,7 +377,7 @@ module.exports = {
355377 return await db . queryTolerant ( queryConstants . GET_SAMPLED_DATA ( fullTableName , jsonColumns ) , [ limit ] ) ;
356378 } ,
357379
358- async _retrieveSingleViewData ( schemaOid , schemaName , viewName ) {
380+ async _retrieveSingleViewData ( schemaOid , schemaName , ignoreUdfUdpTriggers , viewName ) {
359381 logger . progress ( 'Get view data' , schemaName , viewName ) ;
360382
361383 viewName = removeViewNameSuffix ( viewName ) ;
@@ -365,12 +387,13 @@ module.exports = {
365387 ! viewData . view_definition &&
366388 ( await db . queryTolerant ( queryConstants . GET_VIEW_SELECT_STMT_FALLBACK , [ viewName , schemaName ] , true ) ) ;
367389 const viewOptions = await db . queryTolerant ( queryConstants . GET_VIEW_OPTIONS , [ viewName , schemaOid ] , true ) ;
368- const triggersData = await db . queryTolerant ( queryConstants . GET_TRIGGERS , [ schemaName , viewName ] ) ;
369- const triggersAdditionalData = await db . queryTolerant ( queryConstants . GET_TRIGGERS_ADDITIONAL_DATA , [
390+ const triggers = await this . _getTriggers (
391+ schemaName ,
392+ viewName ,
370393 schemaOid ,
371394 viewOptions ?. oid ,
372- ] ) ;
373- const triggers = getTriggers ( triggersData , triggersAdditionalData ) ;
395+ ignoreUdfUdpTriggers ,
396+ ) ;
374397
375398 const script = generateCreateViewScript ( viewName , viewData , viewDefinitionFallback ) ;
376399 const data = prepareViewData ( viewData , viewOptions , triggers ) ;
0 commit comments