Mercurial > gemma
comparison pkg/imports/misc.go @ 2659:00b0a7b2225a
Waterway area import: do not fail if INSERT of one item fails
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 14 Mar 2019 18:09:35 +0100 |
parents | 614c6c766691 |
children | 2b4b9fa9812c |
comparison
equal
deleted
inserted
replaced
2658:74031fbd3d50 | 2659:00b0a7b2225a |
---|---|
9 // * Sascha L. Teichmann <sascha.teichmann@intevation.de> | 9 // * Sascha L. Teichmann <sascha.teichmann@intevation.de> |
10 | 10 |
11 package imports | 11 package imports |
12 | 12 |
13 import ( | 13 import ( |
14 "context" | |
15 "database/sql" | |
14 "fmt" | 16 "fmt" |
15 "strings" | 17 "strings" |
16 ) | 18 ) |
17 | 19 |
18 type stringCounter map[string]int | 20 type stringCounter map[string]int |
25 } | 27 } |
26 b.WriteString(fmt.Sprintf("%s: %d", t, c)) | 28 b.WriteString(fmt.Sprintf("%s: %d", t, c)) |
27 } | 29 } |
28 return b.String() | 30 return b.String() |
29 } | 31 } |
32 | |
33 func Savepoint( | |
34 tx *sql.Tx, | |
35 ctx context.Context, | |
36 name string, | |
37 ) error { | |
38 if _, err := tx.ExecContext(ctx, "SAVEPOINT "+name); err != nil { | |
39 return err | |
40 } | |
41 return nil | |
42 } | |
43 | |
44 func RollbackToSavepoint( | |
45 tx *sql.Tx, | |
46 ctx context.Context, | |
47 name string, | |
48 ) error { | |
49 if _, err := tx.ExecContext(ctx, "ROLLBACK TO SAVEPOINT "+name); err != nil { | |
50 return err | |
51 } | |
52 return nil | |
53 } | |
54 | |
55 func ReleaseSavepoint( | |
56 tx *sql.Tx, | |
57 ctx context.Context, | |
58 name string, | |
59 ) error { | |
60 if _, err := tx.ExecContext(ctx, "RELEASE SAVEPOINT "+name); err != nil { | |
61 return err | |
62 } | |
63 return nil | |
64 } |