4aa17b4fd2
Logs what max_tokens the client sends, whether gophergate injects one from the registry, and the final value forwarded to the provider. Helps trace output truncation issues.
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/jmoiron/sqlx"
|
|
_ "modernc.org/sqlite"
|
|
)
|
|
|
|
type MyNullTime struct {
|
|
Time interface{}
|
|
Type string
|
|
}
|
|
|
|
func (n *MyNullTime) Scan(value interface{}) error {
|
|
n.Time = value
|
|
n.Type = fmt.Sprintf("%T", value)
|
|
return nil
|
|
}
|
|
|
|
func main() {
|
|
db, err := sqlx.Connect("sqlite", "/home/newkirk/Documents/projects/web_projects/gophergate/data/backups/llm_proxy.db.20260303T205057Z")
|
|
if err != nil {
|
|
fmt.Println("connect err:", err)
|
|
return
|
|
}
|
|
defer db.Close()
|
|
|
|
// Test 1: Direct column scan type
|
|
var d MyNullTime
|
|
db.Get(&d, "SELECT last_used_at FROM client_tokens WHERE client_id = ? LIMIT 1", "sk-opencode")
|
|
fmt.Printf("direct SELECT: GoType=%s value=%v\n", d.Type, d.Time)
|
|
|
|
// Test 2: MAX aggregate scan type
|
|
var m MyNullTime
|
|
db.Get(&m, "SELECT MAX(last_used_at) FROM client_tokens WHERE client_id = ?", "sk-opencode")
|
|
fmt.Printf("MAX SELECT: GoType=%s value=%v\n", m.Type, m.Time)
|
|
|
|
// Test 3: peek at the raw driver types
|
|
row := db.QueryRow("SELECT last_used_at, MAX(last_used_at) FROM client_tokens WHERE client_id = ? LIMIT 1", "sk-opencode")
|
|
var a, b interface{}
|
|
row.Scan(&a, &b)
|
|
fmt.Printf("\nRaw Scan:\n")
|
|
fmt.Printf(" last_used_at: type=%T val=%v\n", a, a)
|
|
fmt.Printf(" MAX(last_used_at): type=%T val=%v\n", b, b)
|
|
}
|