snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
This commit is contained in:
88
internal/endtoend/testdata/copyfrom/mysql/go/copyfrom.go
vendored
Normal file
88
internal/endtoend/testdata/copyfrom/mysql/go/copyfrom.go
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
// source: copyfrom.go
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"io"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/go-sql-driver/mysql"
|
||||
"github.com/hexon/mysqltsv"
|
||||
)
|
||||
|
||||
var readerHandlerSequenceForInsertSingleValue uint32 = 1
|
||||
|
||||
func convertRowsForInsertSingleValue(w *io.PipeWriter, a []sql.NullString) {
|
||||
e := mysqltsv.NewEncoder(w, 1, nil)
|
||||
for _, row := range a {
|
||||
e.AppendValue(row)
|
||||
}
|
||||
w.CloseWithError(e.Close())
|
||||
}
|
||||
|
||||
// InsertSingleValue uses MySQL's LOAD DATA LOCAL INFILE and is not atomic.
|
||||
//
|
||||
// Errors and duplicate keys are treated as warnings and insertion will
|
||||
// continue, even without an error for some cases. Use this in a transaction
|
||||
// and use SHOW WARNINGS to check for any problems and roll back if you want to.
|
||||
//
|
||||
// Check the documentation for more information:
|
||||
// https://dev.mysql.com/doc/refman/8.0/en/load-data.html#load-data-error-handling
|
||||
func (q *Queries) InsertSingleValue(ctx context.Context, a []sql.NullString) (int64, error) {
|
||||
pr, pw := io.Pipe()
|
||||
defer pr.Close()
|
||||
rh := fmt.Sprintf("InsertSingleValue_%d", atomic.AddUint32(&readerHandlerSequenceForInsertSingleValue, 1))
|
||||
mysql.RegisterReaderHandler(rh, func() io.Reader { return pr })
|
||||
defer mysql.DeregisterReaderHandler(rh)
|
||||
go convertRowsForInsertSingleValue(pw, a)
|
||||
// The string interpolation is necessary because LOAD DATA INFILE requires
|
||||
// the file name to be given as a literal string.
|
||||
result, err := q.db.ExecContext(ctx, fmt.Sprintf("LOAD DATA LOCAL INFILE '%s' INTO TABLE `foo` %s (a)", "Reader::"+rh, mysqltsv.Escaping))
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return result.RowsAffected()
|
||||
}
|
||||
|
||||
var readerHandlerSequenceForInsertValues uint32 = 1
|
||||
|
||||
func convertRowsForInsertValues(w *io.PipeWriter, arg []InsertValuesParams) {
|
||||
e := mysqltsv.NewEncoder(w, 4, nil)
|
||||
for _, row := range arg {
|
||||
e.AppendValue(row.A)
|
||||
e.AppendValue(row.B)
|
||||
e.AppendValue(row.C)
|
||||
e.AppendValue(row.D)
|
||||
}
|
||||
w.CloseWithError(e.Close())
|
||||
}
|
||||
|
||||
// InsertValues uses MySQL's LOAD DATA LOCAL INFILE and is not atomic.
|
||||
//
|
||||
// Errors and duplicate keys are treated as warnings and insertion will
|
||||
// continue, even without an error for some cases. Use this in a transaction
|
||||
// and use SHOW WARNINGS to check for any problems and roll back if you want to.
|
||||
//
|
||||
// Check the documentation for more information:
|
||||
// https://dev.mysql.com/doc/refman/8.0/en/load-data.html#load-data-error-handling
|
||||
func (q *Queries) InsertValues(ctx context.Context, arg []InsertValuesParams) (int64, error) {
|
||||
pr, pw := io.Pipe()
|
||||
defer pr.Close()
|
||||
rh := fmt.Sprintf("InsertValues_%d", atomic.AddUint32(&readerHandlerSequenceForInsertValues, 1))
|
||||
mysql.RegisterReaderHandler(rh, func() io.Reader { return pr })
|
||||
defer mysql.DeregisterReaderHandler(rh)
|
||||
go convertRowsForInsertValues(pw, arg)
|
||||
// The string interpolation is necessary because LOAD DATA INFILE requires
|
||||
// the file name to be given as a literal string.
|
||||
result, err := q.db.ExecContext(ctx, fmt.Sprintf("LOAD DATA LOCAL INFILE '%s' INTO TABLE `foo` %s (a, b, c, d)", "Reader::"+rh, mysqltsv.Escaping))
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return result.RowsAffected()
|
||||
}
|
||||
31
internal/endtoend/testdata/copyfrom/mysql/go/db.go
vendored
Normal file
31
internal/endtoend/testdata/copyfrom/mysql/go/db.go
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type DBTX interface {
|
||||
ExecContext(context.Context, string, ...any) (sql.Result, error)
|
||||
PrepareContext(context.Context, string) (*sql.Stmt, error)
|
||||
QueryContext(context.Context, string, ...any) (*sql.Rows, error)
|
||||
QueryRowContext(context.Context, string, ...any) *sql.Row
|
||||
}
|
||||
|
||||
func New(db DBTX) *Queries {
|
||||
return &Queries{db: db}
|
||||
}
|
||||
|
||||
type Queries struct {
|
||||
db DBTX
|
||||
}
|
||||
|
||||
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
|
||||
return &Queries{
|
||||
db: tx,
|
||||
}
|
||||
}
|
||||
16
internal/endtoend/testdata/copyfrom/mysql/go/models.go
vendored
Normal file
16
internal/endtoend/testdata/copyfrom/mysql/go/models.go
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type Foo struct {
|
||||
A sql.NullString
|
||||
B sql.NullInt32
|
||||
C sql.NullTime
|
||||
D sql.NullTime
|
||||
}
|
||||
25
internal/endtoend/testdata/copyfrom/mysql/go/query.sql.go
vendored
Normal file
25
internal/endtoend/testdata/copyfrom/mysql/go/query.sql.go
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
// source: query.sql
|
||||
|
||||
package querytest
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
const insertSingleValue = `-- name: InsertSingleValue :copyfrom
|
||||
INSERT INTO foo (a) VALUES (?)
|
||||
`
|
||||
|
||||
const insertValues = `-- name: InsertValues :copyfrom
|
||||
INSERT INTO foo (a, b, c, d) VALUES (?, ?, ?, ?)
|
||||
`
|
||||
|
||||
type InsertValuesParams struct {
|
||||
A sql.NullString
|
||||
B sql.NullInt32
|
||||
C sql.NullTime
|
||||
D sql.NullTime
|
||||
}
|
||||
Reference in New Issue
Block a user