1
0
mirror of https://github.com/ManyakRus/starter.git synced 2025-11-28 23:20:10 +02:00

сделал pgx5

This commit is contained in:
Nikitin Aleksandr
2024-03-26 11:23:09 +03:00
parent 3e15b8834b
commit 4a1e5f9dd4
2 changed files with 21 additions and 14 deletions

View File

@@ -101,6 +101,7 @@ func Connect_WithApplicationName_err(ApplicationName string) error {
// //
config, err := pgx.ParseConfig(databaseUrl) config, err := pgx.ParseConfig(databaseUrl)
//config.PreferSimpleProtocol = true //для мульти-запросов //config.PreferSimpleProtocol = true //для мульти-запросов
Conn = nil
Conn, err = pgx.ConnectConfig(ctx, config) Conn, err = pgx.ConnectConfig(ctx, config)
if err != nil { if err != nil {
@@ -331,7 +332,7 @@ loop:
// GetConnection - возвращает соединение к нужной базе данных // GetConnection - возвращает соединение к нужной базе данных
func GetConnection() *pgx.Conn { func GetConnection() *pgx.Conn {
if Conn == nil { if Conn == nil || Conn.IsClosed() {
Connect() Connect()
} }
@@ -351,19 +352,25 @@ func GetConnection_WithApplicationName(ApplicationName string) *pgx.Conn {
func RawMultipleSQL(db *pgx.Conn, TextSQL string) (pgx.Rows, error) { func RawMultipleSQL(db *pgx.Conn, TextSQL string) (pgx.Rows, error) {
var Rows pgx.Rows var Rows pgx.Rows
var err error var err error
Conn = db
if Conn == nil { if db == nil {
TextError := "RawMultipleSQL() error: db =nil" TextError := "RawMultipleSQL() error: db =nil"
log.Error(TextError) log.Error(TextError)
err = errors.New(TextError) err = errors.New(TextError)
return Rows, err return Rows, err
} }
if db.IsClosed() {
TextError := "RawMultipleSQL() error: db is closed"
log.Error(TextError)
err = errors.New(TextError)
return Rows, err
}
ctx := contextmain.GetContext() ctx := contextmain.GetContext()
//запустим транзакцию //запустим транзакцию
tx, err := Conn.Begin(ctx) tx, err := db.Begin(ctx)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return Rows, err return Rows, err

View File

@@ -133,9 +133,11 @@ SELECT * FROM temp_TestRawMultipleSQL2
Rows, err := RawMultipleSQL(Conn, TextSQL) Rows, err := RawMultipleSQL(Conn, TextSQL)
if err != nil { if err != nil {
t.Error("TestRawMultipleSQL() error: ", err) t.Error("TestRawMultipleSQL() error: ", err)
return
} }
if Rows == nil { if Rows == nil {
t.Error("TestRawMultipleSQL() error: Rows == nil")
return
} }
Otvet := 0 Otvet := 0
@@ -149,12 +151,14 @@ SELECT * FROM temp_TestRawMultipleSQL2
t.Log("Прошло время: ", time.Since(TimeStart)) t.Log("Прошло время: ", time.Since(TimeStart))
} }
// TestRawMultipleSQL2 - negative test, with error
func TestRawMultipleSQL2(t *testing.T) { func TestRawMultipleSQL2(t *testing.T) {
config_main.LoadEnv() config_main.LoadEnv()
GetConnection() GetConnection()
defer CloseConnection() defer CloseConnection()
TimeStart := time.Now() TimeStart := time.Now()
defer t.Log("Прошло время: ", time.Since(TimeStart))
TextSQL := ` TextSQL := `
drop table if exists temp_TestRawMultipleSQL2; drop table if exists temp_TestRawMultipleSQL2;
@@ -170,15 +174,11 @@ SELECT * FROM temp_TestRawMultipleSQL2
Rows, err := Conn.Query(ctx, TextSQL) Rows, err := Conn.Query(ctx, TextSQL)
if err == nil { if err == nil {
t.Error("TestRawMultipleSQL2() Query() error: ", err) t.Error("TestRawMultipleSQL2() Query() error: ", err)
return
}
if Rows == nil {
t.Error("TestRawMultipleSQL2() error: Rows == nil")
return
} }
Otvet := 0
for Rows.Next() {
err := Rows.Scan(&Otvet)
if err != nil {
t.Error("TestRawMultipleSQL2() Scan() error: ", err)
}
}
t.Log("Прошло время: ", time.Since(TimeStart))
} }