Skip to content

How do you get the actual query for insert, update and delete events? #1

Description

@Farhan-Karaz

With this code:

	for {
		fmt.Println("\nWaiting for next event...")
		e, err := bl.NextEvent()
		fmt.Println("Got event:", e.Header.EventType)
		if err != nil {
			if err == io.EOF {
				break
			}
			panic(err)
		}

		if e.Header.EventType.IsWriteRows() {
			fmt.Println("EVENT TYPE: insert rows")
		} else if e.Header.EventType.IsUpdateRows() {
			fmt.Println("EVENT TYPE: update rows")
		} else if e.Header.EventType.IsDeleteRows() {
			fmt.Println("EVENT TYPE: delete rows")
		}

		qe, ok := e.Data.(binlog.QueryEvent)
		if ok {
			fmt.Println("QUERY EVENT:",qe.Query)
		}
		rse, ok := e.Data.(binlog.RowsEvent)
		if ok {
			fmt.Println("ROWS EVENT:",rse.TableMap.TableName, rse.TableMap.SchemaName)
		}
		tme, ok := e.Data.(binlog.TableMapEvent)
		if ok {
			fmt.Println("TABLE MAP EVENT:", tme.TableName, tme.SchemaName)
		}
	}

I get the following output:

Waiting for next event...
Got event: query
QUERY EVENT: BEGIN

Waiting for next event...
Got event: tableMap
TABLE MAP EVENT: test_table test_db

Waiting for next event...
Got event: writeRowsV2
EVENT TYPE: insert rows
ROWS EVENT: test_table test_db

How do I get the actual values inserted? Even more importantly, how do I get the full query?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions