@@ -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,15 +174,25 @@ 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 ) {
189+ async retrieveSchemaLevelData ( schemaName , ignoreUdfUdpTriggers ) {
190+ if ( ignoreUdfUdpTriggers ) {
191+ logger . info ( 'Functions and procedures ignored' ) ;
192+
193+ return { functions : [ ] , procedures : [ ] } ;
194+ }
195+
180196 logger . progress ( 'Get Functions and Procedures' , schemaName ) ;
181197
182198 const schemaOid = ( await db . queryTolerant ( queryConstants . GET_NAMESPACE_OID , [ schemaName ] , true ) ) ?. oid ;
@@ -245,6 +261,7 @@ module.exports = {
245261 schemaOid ,
246262 schemaName ,
247263 userDefinedTypes ,
264+ ignoreUdfUdpTriggers ,
248265 { tableName, isParentPartitioned } ,
249266 ) {
250267 logger . progress ( 'Get table data' , schemaName , tableName ) ;
@@ -268,11 +285,7 @@ module.exports = {
268285 const tableConstraintsResult = await db . queryTolerant ( queryConstants . GET_TABLE_CONSTRAINTS , [ tableOid ] ) ;
269286 const tableIndexesResult = await db . queryTolerant ( getGetIndexesQuery ( version ) , [ tableOid ] ) ;
270287 const tableForeignKeys = await db . queryTolerant ( queryConstants . GET_TABLE_FOREIGN_KEYS , [ tableOid ] ) ;
271- const triggersData = await db . queryTolerant ( queryConstants . GET_TRIGGERS , [ schemaName , tableName ] ) ;
272- const triggersAdditionalData = await db . queryTolerant ( queryConstants . GET_TRIGGERS_ADDITIONAL_DATA , [
273- schemaOid ,
274- tableOid ,
275- ] ) ;
288+ const triggers = await this . _getTriggers ( schemaName , tableName , schemaOid , tableOid , ignoreUdfUdpTriggers ) ;
276289
277290 const partitioning = prepareTablePartition ( partitionResult , tableColumns ) ;
278291 const tableLevelProperties = prepareTableLevelData ( tableLevelData , tableToastOptions ) ;
@@ -281,7 +294,6 @@ module.exports = {
281294 const tableConstraint = prepareTableConstraints ( tableConstraintsResult , tableColumns , tableIndexesResult ) ;
282295 const tableIndexes = prepareTableIndexes ( tableIndexesResult ) ;
283296 const relationships = prepareForeignKeys ( tableForeignKeys , tableName , schemaName , tableColumns ) ;
284- const triggers = getTriggers ( triggersData , triggersAdditionalData ) ;
285297
286298 const tableData = {
287299 partitioning,
@@ -316,6 +328,22 @@ module.exports = {
316328 } ;
317329 } ,
318330
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+
319347 async _getTableColumns ( tableName , schemaName , tableOid ) {
320348 logger . progress ( 'Get columns' , schemaName , tableName ) ;
321349
@@ -349,7 +377,7 @@ module.exports = {
349377 return await db . queryTolerant ( queryConstants . GET_SAMPLED_DATA ( fullTableName , jsonColumns ) , [ limit ] ) ;
350378 } ,
351379
352- async _retrieveSingleViewData ( schemaOid , schemaName , viewName ) {
380+ async _retrieveSingleViewData ( schemaOid , schemaName , ignoreUdfUdpTriggers , viewName ) {
353381 logger . progress ( 'Get view data' , schemaName , viewName ) ;
354382
355383 viewName = removeViewNameSuffix ( viewName ) ;
@@ -359,12 +387,13 @@ module.exports = {
359387 ! viewData . view_definition &&
360388 ( await db . queryTolerant ( queryConstants . GET_VIEW_SELECT_STMT_FALLBACK , [ viewName , schemaName ] , true ) ) ;
361389 const viewOptions = await db . queryTolerant ( queryConstants . GET_VIEW_OPTIONS , [ viewName , schemaOid ] , true ) ;
362- const triggersData = await db . queryTolerant ( queryConstants . GET_TRIGGERS , [ schemaName , viewName ] ) ;
363- const triggersAdditionalData = await db . queryTolerant ( queryConstants . GET_TRIGGERS_ADDITIONAL_DATA , [
390+ const triggers = await this . _getTriggers (
391+ schemaName ,
392+ viewName ,
364393 schemaOid ,
365394 viewOptions ?. oid ,
366- ] ) ;
367- const triggers = getTriggers ( triggersData , triggersAdditionalData ) ;
395+ ignoreUdfUdpTriggers ,
396+ ) ;
368397
369398 const script = generateCreateViewScript ( viewName , viewData , viewDefinitionFallback ) ;
370399 const data = prepareViewData ( viewData , viewOptions , triggers ) ;
0 commit comments