new changes

This commit is contained in:
Suriya
2026-07-01 10:53:57 +05:30
parent 0d42ac84e1
commit f220c24c17
8 changed files with 369 additions and 1 deletions

View File

@@ -0,0 +1,92 @@
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/jackc/pgx/v5/stdlib"
)
func main() {
dsn := "host=66.116.207.225 port=5433 user=admin password=Package@123# dbname=nearledb sslmode=disable"
db, err := sql.Open("pgx", dsn)
if err != nil {
log.Fatalf("Error opening db connection: %v", err)
}
defer db.Close()
err = db.Ping()
if err != nil {
log.Fatalf("Error pinging db: %v", err)
}
fmt.Println("Connected successfully to PostgreSQL!")
// 1. Group users by roleid
query1 := `
SELECT roleid, COUNT(*), MIN(authname) AS sample_user
FROM app_users
GROUP BY roleid
ORDER BY roleid;
`
rows1, err := db.Query(query1)
if err != nil {
log.Fatalf("Query1 error: %v", err)
}
defer rows1.Close()
fmt.Println("\n--- USER COUNTS BY ROLEID ---")
for rows1.Next() {
var roleid sql.NullInt64
var count int
var sampleUser sql.NullString
if err := rows1.Scan(&roleid, &count, &sampleUser); err != nil {
log.Fatalf("Row scan error: %v", err)
}
fmt.Printf("Role ID: %5d | Count: %5d | Sample User: %s\n", roleid.Int64, count, sampleUser.String)
}
// 2. Fetch list of tables matching 'rider' or 'pool'
query2 := `
SELECT table_name
FROM information_schema.tables
WHERE table_name LIKE '%rider%' OR table_name LIKE '%pool%' OR table_name LIKE '%staff%';
`
rows2, err := db.Query(query2)
if err != nil {
log.Fatalf("Query2 error: %v", err)
}
defer rows2.Close()
fmt.Println("\n--- RIDER/POOL/STAFF TABLES ---")
for rows2.Next() {
var tableName string
if err := rows2.Scan(&tableName); err != nil {
log.Fatalf("Row scan error: %v", err)
}
fmt.Println("Table Name:", tableName)
}
// 3. Check triggers on app_users
query3 := `
SELECT tgname, tgtype, pg_get_triggerdef(pg_trigger.oid)
FROM pg_trigger
JOIN pg_class ON pg_class.oid = tgrelid
WHERE relname = 'app_users';
`
rows3, err := db.Query(query3)
if err != nil {
log.Fatalf("Query3 error: %v", err)
}
defer rows3.Close()
fmt.Println("\n--- TRIGGERS ON app_users ---")
for rows3.Next() {
var tgname, tgdef string
var tgtype int
if err := rows3.Scan(&tgname, &tgtype, &tgdef); err != nil {
log.Fatalf("Row scan error: %v", err)
}
fmt.Printf("Trigger: %s | Type: %d | Def: %s\n", tgname, tgtype, tgdef)
}
}