Files
Bridge-and-Join-s/internal/lkgateway/ftvcols_live_test.go
T

44 lines
1.7 KiB
Go

//go:build live
package lkgateway
import (
"context"
"fmt"
"testing"
)
// Только чтение: колонки времени и умолчания в таблицах обмена FTV_M2M*.
func TestFTVColsLive(t *testing.T) {
rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json")
if err != nil {
t.Fatal(err)
}
fs := rc.Snapshot().Fancy
db, err := fancyOpen(fs, fs.DepoDB())
if err != nil {
t.Fatal(err)
}
defer db.Close()
ctx := context.Background()
rows, err := db.QueryContext(ctx, `SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, ISNULL(COLUMN_DEFAULT,'—')
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE 'FTV_M2M%' AND COLUMN_NAME IN ('TimeNew','TimeBeg','TimeEnd','STATE') ORDER BY TABLE_NAME, ORDINAL_POSITION`)
if err != nil {
t.Fatal(err)
}
for rows.Next() {
var tb, c, dt, nl, def string
_ = rows.Scan(&tb, &c, &dt, &nl, &def)
fmt.Printf("%-18s %-8s %-9s null=%s default=%s\n", tb, c, dt, nl, def)
}
rows.Close()
for _, tb := range []string{"FTV_M2M", "FTV_M2M_LINES", "FTV_M2M_EVENTS"} {
var all, nnew, nbeg, nend int
_ = db.QueryRowContext(ctx, "SELECT COUNT(*), SUM(CASE WHEN TimeNew IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN TimeBeg IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN TimeEnd IS NULL THEN 1 ELSE 0 END) FROM dbo."+tb).Scan(&all, &nnew, &nbeg, &nend)
fmt.Printf("%s: строк %d, TimeNew пусто %d, TimeBeg пусто %d, TimeEnd пусто %d\n", tb, all, nnew, nbeg, nend)
}
var tn, tb2, te interface{}
_ = db.QueryRowContext(ctx, "SELECT TimeNew, TimeBeg, TimeEnd FROM dbo.FTV_M2M WHERE GUID='5A256E6D-9977-4DCD-A481-B2E494F0FE6A'").Scan(&tn, &tb2, &te)
fmt.Println("шапка 5A256E6D:", tn, tb2, te)
}