MCPcopy Index your code
hub / github.com/github/gh-ost / NewCheckpointQueryBuilder

Function NewCheckpointQueryBuilder

go/sql/builder.go:126–163  ·  view source on GitHub ↗
(databaseName, tableName string, uniqueKeyColumns *ColumnList)

Source from the content-addressed store, hash-verified

124}
125
126func NewCheckpointQueryBuilder(databaseName, tableName string, uniqueKeyColumns *ColumnList) (*CheckpointInsertQueryBuilder, error) {
127 if uniqueKeyColumns.Len() == 0 {
128 return nil, fmt.Errorf("got 0 columns in BuildSetCheckpointInsertQuery")
129 }
130 values := buildColumnsPreparedValues(uniqueKeyColumns)
131 minUniqueColNames := []string{}
132 maxUniqueColNames := []string{}
133 for _, name := range uniqueKeyColumns.Names() {
134 minColName := TruncateColumnName(name, MaxColumnNameLength-4) + "_min"
135 maxColName := TruncateColumnName(name, MaxColumnNameLength-4) + "_max"
136 minUniqueColNames = append(minUniqueColNames, minColName)
137 maxUniqueColNames = append(maxUniqueColNames, maxColName)
138 }
139 databaseName = EscapeName(databaseName)
140 tableName = EscapeName(tableName)
141 stmt := fmt.Sprintf(`
142 insert /* gh-ost */
143 into %s.%s
144 (gh_ost_chk_timestamp, gh_ost_chk_coords, gh_ost_chk_iteration,
145 gh_ost_rows_copied, gh_ost_dml_applied, gh_ost_is_cutover,
146 %s, %s)
147 values
148 (unix_timestamp(now()), ?, ?,
149 ?, ?, ?,
150 %s, %s)`,
151 databaseName, tableName,
152 strings.Join(minUniqueColNames, ", "),
153 strings.Join(maxUniqueColNames, ", "),
154 strings.Join(values, ", "),
155 strings.Join(values, ", "),
156 )
157
158 b := &CheckpointInsertQueryBuilder{
159 uniqueKeyColumns: uniqueKeyColumns,
160 preparedStatement: stmt,
161 }
162 return b, nil
163}
164
165// BuildQuery builds the insert query.
166func (b *CheckpointInsertQueryBuilder) BuildQuery(uniqueKeyArgs []interface{}) (string, []interface{}, error) {

Callers 2

prepareQueriesMethod · 0.92

Calls 6

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

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…