MCPcopy
hub / github.com/github/gh-ost / NewDMLDeleteQueryBuilder

Function NewDMLDeleteQueryBuilder

go/sql/builder.go:802–830  ·  view source on GitHub ↗

NewDMLDeleteQueryBuilder creates a new DMLDeleteQueryBuilder. It prepares the DELETE query statement. Returns an error if no unique key columns are given or the prepared statement cannot be built.

(databaseName, tableName string, tableColumns, uniqueKeyColumns *ColumnList)

Source from the content-addressed store, hash-verified

800// Returns an error if no unique key columns are given
801// or the prepared statement cannot be built.
802func NewDMLDeleteQueryBuilder(databaseName, tableName string, tableColumns, uniqueKeyColumns *ColumnList) (*DMLDeleteQueryBuilder, error) {
803 if uniqueKeyColumns.Len() == 0 {
804 return nil, fmt.Errorf("no unique key columns found in NewDMLDeleteQueryBuilder")
805 }
806 databaseName = EscapeName(databaseName)
807 tableName = EscapeName(tableName)
808 equalsComparison, err := BuildEqualsPreparedComparison(uniqueKeyColumns.Names())
809 if err != nil {
810 return nil, err
811 }
812
813 stmt := fmt.Sprintf(`
814 delete /* gh-ost %s.%s */
815 from
816 %s.%s
817 where
818 %s`,
819 databaseName, tableName,
820 databaseName, tableName,
821 equalsComparison,
822 )
823
824 b := &DMLDeleteQueryBuilder{
825 tableColumns: tableColumns,
826 uniqueKeyColumns: uniqueKeyColumns,
827 preparedStatement: stmt,
828 }
829 return b, nil
830}
831
832// BuildQuery builds the arguments array for a DML event DELETE query.
833// It returns the query string and the unique key arguments array.

Callers 3

prepareQueriesMethod · 0.92
TestBuildDMLDeleteQueryFunction · 0.85

Calls 5

EscapeNameFunction · 0.85
NamesMethod · 0.80
ErrorfMethod · 0.65
LenMethod · 0.45

Tested by 2

TestBuildDMLDeleteQueryFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…