44 "fmt"
55
66 "github.com/go-logr/logr"
7- "github.com/lib/pq"
87)
98
109const (
@@ -29,20 +28,21 @@ const (
2928)
3029
3130func (c * pg ) CreateDB (dbname , role string ) error {
32- _ , err := c .db .Exec (fmt .Sprintf (CREATE_DB , dbname ))
31+ // Create database
32+ err := c .execute (fmt .Sprintf (CREATE_DB , dbname ))
3333 if err != nil {
3434 // eat DUPLICATE DATABASE ERROR
35- if err .( * pq. Error ). Code != "42P04" {
35+ if ! isPgError ( err , "42P04" ) {
3636 return err
3737 }
3838 }
3939
40- _ , err = c .db . Exec (fmt .Sprintf (ALTER_DB_OWNER , dbname , role ))
40+ err = c .execute (fmt .Sprintf (ALTER_DB_OWNER , dbname , role ))
4141 if err != nil {
4242 return err
4343 }
4444
45- _ , err = c .db . Exec (fmt .Sprintf (GRANT_CREATE_SCHEMA , dbname , role ))
45+ err = c .execute (fmt .Sprintf (GRANT_CREATE_SCHEMA , dbname , role ))
4646 if err != nil {
4747 return err
4848 }
@@ -54,8 +54,7 @@ func (c *pg) AlterDatabaseOwner(dbname, owner string) error {
5454 if owner == "" {
5555 return nil
5656 }
57- _ , err := c .db .Exec (fmt .Sprintf (ALTER_DB_OWNER , dbname , owner ))
58- return err
57+ return c .execute (fmt .Sprintf (ALTER_DB_OWNER , dbname , owner ))
5958}
6059
6160func (c * pg ) ReassignDatabaseOwner (dbName , currentOwner , newOwner string , logger logr.Logger ) error {
@@ -71,7 +70,7 @@ func (c *pg) ReassignDatabaseOwner(dbName, currentOwner, newOwner string, logger
7170
7271 _ , err = tmpDb .Exec (fmt .Sprintf (REASSIGN_DB_OWNER , currentOwner , newOwner ))
7372 if err != nil {
74- if pqErr , ok := err .( * pq. Error ); ok && pqErr . Code == "42704" {
73+ if isPgError ( err , "42704" ) {
7574 return nil
7675 }
7776 return err
@@ -94,20 +93,20 @@ func (c *pg) CreateSchema(db, role, schema string, logger logr.Logger) error {
9493}
9594
9695func (c * pg ) DropDatabase (database string , logger logr.Logger ) error {
97- _ , err := c .db . Exec (fmt .Sprintf (REVOKE_CONNECT , database ))
96+ err := c .execute (fmt .Sprintf (REVOKE_CONNECT , database ))
9897 // Error code 3D000 is returned if database doesn't exist
99- if err != nil && err .( * pq. Error ). Code != "3D000" {
98+ if err != nil && ! isPgError ( err , "3D000" ) {
10099 return err
101100 }
102101
103- _ , err = c .db . Exec (fmt .Sprintf (TERMINATE_BACKEND , database ))
102+ err = c .execute (fmt .Sprintf (TERMINATE_BACKEND , database ))
104103 // Error code 3D000 is returned if database doesn't exist
105- if err != nil && err .( * pq. Error ). Code != "3D000" {
104+ if err != nil && ! isPgError ( err , "3D000" ) {
106105 return err
107106 }
108- _ , err = c .db . Exec (fmt .Sprintf (DROP_DATABASE , database ))
107+ err = c .execute (fmt .Sprintf (DROP_DATABASE , database ))
109108 // Error code 3D000 is returned if database doesn't exist
110- if err != nil && err .( * pq. Error ). Code != "3D000" {
109+ if err != nil && ! isPgError ( err , "3D000" ) {
111110 return err
112111 }
113112
0 commit comments