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 }