Hi, Team

I'm working on CaptureChangeMySQL processor with nifi version 1.11.4.  I just 
capture update event of one table when updating more than one table in join 
statement.
The CaptureChangeMySQL behavior is wrong, maybe is a bug. The reason is the 
below code: cannot got the correctly table info when multi Table_map event 
happened. 
The currentTable should be the latest Table_map , so the follow binlog parser 
is going to wrong table name, the table_name is wrong in json.

Is this a known limitation? Could you fix if it is a bug.

                case TABLE_MAP:
                    // This is sent to inform which table is about to be 
changed by subsequent events
                    TableMapEventData data = event.getData();

                    ......

                    if (!skipTable) {
                        TableInfoCacheKey key = new 
TableInfoCacheKey(this.getIdentifier(), data.getDatabase(), data.getTable(), 
data.getTableId());
                        if (cacheClient != null) {
                            try {
                                currentTable = cacheClient.get(key, 
cacheKeySerializer, cacheValueDeserializer);        

 The belows is my sql.  

# UPDATE wdk_sub_orders_drf5089_9 s
#             inner join wdk_main_order_drf5089 m on 
m.main_order_id=s.main_order_id
#             left join wdk_sub_order_mc_drf5089 ms on 
ms.sub_order_id=s.sub_order_id
#             left join wdk_order_promotion_info_drf5089 p on 
p.sub_order_id=s.sub_order_id
#             set
#               s.merchant_id='3' 
#               , s.merchant_store_id=1
#                 , s.store_sales_type=m.store_sales_type
#                 , s.store_channel_id=2
#                 , s.presell_type=m.order_type
#                 , ms.store_sales_type=m.store_sales_type
#                 , ms.order_type=3
#                 , p.store_sales_type=4
#                 , p.presell_type=m.order_type
#          where
#              s.id between 100382538 and 100382539 and s.source=1 and 
s.merchant_id='2'
  Retrieve All Records:  false
  Include DDL Events:   false
  
  I got the binlog like belows:
  
  
  #200930  8:46:19 server id 100  end_log_pos 29660 CRC32 0x1e9b0378    
Table_map: `test`.`wdk_sub_orders_drf5089_9` mapped to number 219
# at 29660
#200930  8:46:19 server id 100  end_log_pos 29762 CRC32 0xfac7a7b0      
Table_map: `test`.`wdk_sub_order_mc_drf5089` mapped to number 221
# at 29762
#200930  8:46:19 server id 100  end_log_pos 29882 CRC32 0x8b437c40      
Table_map: `test`.`wdk_order_promotion_info_drf5089` mapped to number 222
# at 29882
#200930  8:46:19 server id 100  end_log_pos 30470 CRC32 0x3e0a2dab      
Update_rows: table id 219
# at 30470
#200930  8:46:19 server id 100  end_log_pos 30776 CRC32 0x4335186c      
Update_rows: table id 221
# at 30776
#200930  8:46:19 server id 100  end_log_pos 30959 CRC32 0x8153af67      
Update_rows: table id 222 flags: STMT_END_F
### UPDATE `test`.`wdk_sub_orders_drf5089_9`
### WHERE
###   @1=100382538 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @4=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @5=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @6=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @7=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @8='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @9=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @10=-1 (18446744073709551615) /* LONGINT meta=0 nullable=0 is_null=0 */
###   @11=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @12=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @13=-1 (4294967295) /* INT meta=0 nullable=0 is_null=0 */
###   @14='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @15='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @16='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @17='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @18='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @19=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @20='2020-09-29 18:08:30' /* DATETIME(0) meta=0 nullable=0 is_null=0 */
###   @21='2020-09-29 18:08:30' /* DATETIME(0) meta=0 nullable=0 is_null=0 */
###   @22='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @23=0 /* INT meta=0 nullable=0 is_null=0 */
###   @24=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @25=0 /* SHORTINT meta=0 nullable=0 is_null=0 */
###   @26=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @27=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @28=0.00 /* DECIMAL(15,2) meta=3842 nullable=0 is_null=0 */
###   @29=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @30='' /* VARSTRING(60) meta=60 nullable=0 is_null=0 */
###   @31='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @32=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @33=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @34='' /* VARSTRING(60) meta=60 nullable=0 is_null=0 */
###   @35=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @36=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @37=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @38='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @39='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @40='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @41=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @42=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @43=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @44=0.000 /* DECIMAL(11,3) meta=2819 nullable=0 is_null=0 */
###   @45=0 /* SHORTINT meta=0 nullable=0 is_null=0 */
###   @46=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @47='' /* VARSTRING(300) meta=300 nullable=0 is_null=0 */
###   @48=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @49='' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */
###   @50=0.000 /* DECIMAL(11,3) meta=2819 nullable=0 is_null=0 */
###   @51='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @52='' /* VARSTRING(150) meta=150 nullable=0 is_null=0 */
###   @53=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @54='' /* VARSTRING(3000) meta=3000 nullable=0 is_null=0 */
###   @55=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @56=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @57='' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */
###   @58=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @59=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @60='2' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @61='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @62='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @63='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @64=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @65=1 /* TINYINT meta=0 nullable=0 is_null=0 */
### SET
###   @1=100382538 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @3=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @4=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @5=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @6=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @7=1 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @8='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @9=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @10=-1 (18446744073709551615) /* LONGINT meta=0 nullable=0 is_null=0 */
###   @11=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @12=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @13=-1 (4294967295) /* INT meta=0 nullable=0 is_null=0 */
###   @14='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @15='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @16='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @17='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @18='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @19=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @20='2020-09-29 18:08:30' /* DATETIME(0) meta=0 nullable=0 is_null=0 */
###   @21='2020-09-29 18:08:30' /* DATETIME(0) meta=0 nullable=0 is_null=0 */
###   @22='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @23=0 /* INT meta=0 nullable=0 is_null=0 */
###   @24=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @25=0 /* SHORTINT meta=0 nullable=0 is_null=0 */
###   @26=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @27=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @28=0.00 /* DECIMAL(15,2) meta=3842 nullable=0 is_null=0 */
###   @29=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @30='' /* VARSTRING(60) meta=60 nullable=0 is_null=0 */
###   @31='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @32=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @33=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @34='' /* VARSTRING(60) meta=60 nullable=0 is_null=0 */
###   @35=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @36=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @37=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @38='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @39='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @40='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @41=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @42=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @43=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @44=0.000 /* DECIMAL(11,3) meta=2819 nullable=0 is_null=0 */
###   @45=0 /* SHORTINT meta=0 nullable=0 is_null=0 */
###   @46=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @47='' /* VARSTRING(300) meta=300 nullable=0 is_null=0 */
###   @48=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @49='' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */
###   @50=0.000 /* DECIMAL(11,3) meta=2819 nullable=0 is_null=0 */
###   @51='' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @52='' /* VARSTRING(150) meta=150 nullable=0 is_null=0 */
###   @53=0 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @54='' /* VARSTRING(3000) meta=3000 nullable=0 is_null=0 */
###   @55=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @56=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @57='' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */
###   @58=0 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @59=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @60='3' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @61='1' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @62='10' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @63='2' /* VARSTRING(192) meta=192 nullable=0 is_null=0 */
###   @64=1 /* TINYINT meta=0 nullable=0 is_null=0 */
###   @65=1 /* TINYINT meta=0 nullable=0 is_null=0 */
### UPDATE `test`.`wdk_sub_order_mc_drf5089`
### WHERE
###   @1=30735 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @2='' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
###   @3=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @4=1 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @6=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @7=0.000 /* DECIMAL(11,3) meta=2819 nullable=1 is_null=0 */
###   @8=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @9=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @10=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @11=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @12=0 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @13=0.0000 /* DECIMAL(10,4) meta=2564 nullable=1 is_null=0 */
###   @14=1601374464 /* TIMESTAMP(0) meta=0 nullable=1 is_null=0 */
###   @15=1601374464 /* TIMESTAMP(0) meta=0 nullable=1 is_null=0 */
###   @16='' /* VARSTRING(1536) meta=1536 nullable=1 is_null=0 */
###   @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @19=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @20=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @21=1 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @22='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
### SET
###   @1=30735 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @2='' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
###   @3=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @4=1 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @6=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @7=0.000 /* DECIMAL(11,3) meta=2819 nullable=1 is_null=0 */
###   @8=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @9=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @10=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @11=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @12=0 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @13=0.0000 /* DECIMAL(10,4) meta=2564 nullable=1 is_null=0 */
###   @14=1601374464 /* TIMESTAMP(0) meta=0 nullable=1 is_null=0 */
###   @15=1601426779 /* TIMESTAMP(0) meta=0 nullable=1 is_null=0 */
###   @16='' /* VARSTRING(1536) meta=1536 nullable=1 is_null=0 */
###   @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @19=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @20=0 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @21=3 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @22='10' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
### UPDATE `test`.`wdk_order_promotion_info_drf5089`
### WHERE
###   @1=4675456 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @2='1' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @3=1 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @4=1 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @6=0 /* INT meta=0 nullable=1 is_null=0 */
###   @7=0 /* INT meta=0 nullable=1 is_null=0 */
###   @8=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */
###   @9='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @10='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @11='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @12=0 /* INT meta=0 nullable=1 is_null=0 */
###   @13='' /* VARSTRING(3072) meta=3072 nullable=1 is_null=0 */
###   @14='2020-09-29 18:16:23' /* DATETIME(0) meta=0 nullable=1 is_null=0 */
###   @15='2020-09-29 18:16:23' /* DATETIME(0) meta=0 nullable=1 is_null=0 */
###   @16='1' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @17='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @18='' /* VARSTRING(600) meta=600 nullable=1 is_null=0 */
###   @19='' /* VARSTRING(3000) meta=3000 nullable=1 is_null=0 */
###   @20=0 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @21=1 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @22='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
### SET
###   @1=4675456 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @2='1' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @3=1 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @4=1 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @6=0 /* INT meta=0 nullable=1 is_null=0 */
###   @7=0 /* INT meta=0 nullable=1 is_null=0 */
###   @8=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */
###   @9='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @10='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @11='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @12=0 /* INT meta=0 nullable=1 is_null=0 */
###   @13='' /* VARSTRING(3072) meta=3072 nullable=1 is_null=0 */
###   @14='2020-09-29 18:16:23' /* DATETIME(0) meta=0 nullable=1 is_null=0 */
###   @15='2020-09-29 18:16:23' /* DATETIME(0) meta=0 nullable=1 is_null=0 */
###   @16='1' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @17='' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
###   @18='' /* VARSTRING(600) meta=600 nullable=1 is_null=0 */
###   @19='' /* VARSTRING(3000) meta=3000 nullable=1 is_null=0 */
###   @20=0 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @21=1 /* TINYINT meta=0 nullable=1 is_null=0 */
###   @22='4' /* VARSTRING(192) meta=192 nullable=1 is_null=0 */
# at 30959
#200930  8:46:19 server id 100  end_log_pos 30990 CRC32 0x496fe17f      Xid = 
28836
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
  
  
  

Thanks!

Paul Yang

Reply via email to