(t *testing.T)
| 738 | } |
| 739 | |
| 740 | func TestBuildDMLDeleteQuery(t *testing.T) { |
| 741 | databaseName := "mydb" |
| 742 | tableName := "tbl" |
| 743 | tableColumns := NewColumnList([]string{"id", "name", "rank", "position", "age"}) |
| 744 | args := []interface{}{3, "testname", "first", 17, 23} |
| 745 | { |
| 746 | uniqueKeyColumns := NewColumnList([]string{"position"}) |
| 747 | builder, err := NewDMLDeleteQueryBuilder(databaseName, tableName, tableColumns, uniqueKeyColumns) |
| 748 | require.NoError(t, err) |
| 749 | |
| 750 | query, uniqueKeyArgs, err := builder.BuildQuery(args) |
| 751 | require.NoError(t, err) |
| 752 | expected := ` |
| 753 | delete /* gh-ost mydb.tbl */ |
| 754 | from |
| 755 | mydb.tbl |
| 756 | where |
| 757 | ((position = ?)) |
| 758 | ` |
| 759 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 760 | require.Equal(t, []interface{}{17}, uniqueKeyArgs) |
| 761 | } |
| 762 | { |
| 763 | uniqueKeyColumns := NewColumnList([]string{"name", "position"}) |
| 764 | builder, err := NewDMLDeleteQueryBuilder(databaseName, tableName, tableColumns, uniqueKeyColumns) |
| 765 | require.NoError(t, err) |
| 766 | |
| 767 | query, uniqueKeyArgs, err := builder.BuildQuery(args) |
| 768 | require.NoError(t, err) |
| 769 | expected := ` |
| 770 | delete /* gh-ost mydb.tbl */ |
| 771 | from |
| 772 | mydb.tbl |
| 773 | where |
| 774 | ((name = ?) and (position = ?)) |
| 775 | ` |
| 776 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 777 | require.Equal(t, []interface{}{"testname", 17}, uniqueKeyArgs) |
| 778 | } |
| 779 | { |
| 780 | uniqueKeyColumns := NewColumnList([]string{"position", "name"}) |
| 781 | builder, err := NewDMLDeleteQueryBuilder(databaseName, tableName, tableColumns, uniqueKeyColumns) |
| 782 | require.NoError(t, err) |
| 783 | |
| 784 | query, uniqueKeyArgs, err := builder.BuildQuery(args) |
| 785 | require.NoError(t, err) |
| 786 | expected := ` |
| 787 | delete /* gh-ost mydb.tbl */ |
| 788 | from |
| 789 | mydb.tbl |
| 790 | where |
| 791 | ((position = ?) and (name = ?)) |
| 792 | ` |
| 793 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 794 | require.Equal(t, []interface{}{17, "testname"}, uniqueKeyArgs) |
| 795 | } |
| 796 | { |
| 797 | uniqueKeyColumns := NewColumnList([]string{"position", "name"}) |
nothing calls this directly
no test coverage detected
searching dependent graphs…