summaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/pgx/v5/copy_from.go
diff options
context:
space:
mode:
authorLibravatar dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2024-01-03 10:03:16 +0000
committerLibravatar GitHub <noreply@github.com>2024-01-03 10:03:16 +0000
commit3ab621444945e876de6871254d86925d47d7d960 (patch)
treef7aa06862c24a86a85aa0f6246f2934c76fef559 /vendor/github.com/jackc/pgx/v5/copy_from.go
parent[chore]: Bump github.com/google/uuid from 1.4.0 to 1.5.0 (#2469) (diff)
downloadgotosocial-3ab621444945e876de6871254d86925d47d7d960.tar.xz
[chore]: Bump github.com/jackc/pgx/v5 from 5.5.0 to 5.5.1 (#2468)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.0 to 5.5.1. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.5.0...v5.5.1) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/jackc/pgx/v5/copy_from.go')
-rw-r--r--vendor/github.com/jackc/pgx/v5/copy_from.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/github.com/jackc/pgx/v5/copy_from.go b/vendor/github.com/jackc/pgx/v5/copy_from.go
index a2c227fd4..abcd22396 100644
--- a/vendor/github.com/jackc/pgx/v5/copy_from.go
+++ b/vendor/github.com/jackc/pgx/v5/copy_from.go
@@ -64,6 +64,33 @@ func (cts *copyFromSlice) Err() error {
return cts.err
}
+// CopyFromFunc returns a CopyFromSource interface that relies on nxtf for values.
+// nxtf returns rows until it either signals an 'end of data' by returning row=nil and err=nil,
+// or it returns an error. If nxtf returns an error, the copy is aborted.
+func CopyFromFunc(nxtf func() (row []any, err error)) CopyFromSource {
+ return &copyFromFunc{next: nxtf}
+}
+
+type copyFromFunc struct {
+ next func() ([]any, error)
+ valueRow []any
+ err error
+}
+
+func (g *copyFromFunc) Next() bool {
+ g.valueRow, g.err = g.next()
+ // only return true if valueRow exists and no error
+ return g.valueRow != nil && g.err == nil
+}
+
+func (g *copyFromFunc) Values() ([]any, error) {
+ return g.valueRow, g.err
+}
+
+func (g *copyFromFunc) Err() error {
+ return g.err
+}
+
// CopyFromSource is the interface used by *Conn.CopyFrom as the source for copy data.
type CopyFromSource interface {
// Next returns true if there is another row and makes the next row data