@@ -29,7 +29,6 @@ import (
2929 "github.com/dolthub/vitess/go/race"
3030 "github.com/dolthub/vitess/go/sqltypes"
3131 "github.com/dolthub/vitess/go/vt/proto/query"
32- "github.com/sirupsen/logrus"
3332 "github.com/stretchr/testify/assert"
3433 "github.com/stretchr/testify/require"
3534
@@ -1954,6 +1953,9 @@ func TestLoggerFieldsSetup(t *testing.T) {
19541953 // Verify that the logger has the expected fields
19551954 require .Contains (t , logger .Data , sql .ConnectTimeLogKey , "Logger should contain connect time" )
19561955 require .Contains (t , logger .Data , sql .ConnectionIdLogField , "Logger should contain connection ID" )
1956+
1957+ // Verify that the QueryTimeLogKey constant exists
1958+ require .NotEmpty (t , sql .QueryTimeLogKey , "QueryTimeLogKey constant should be defined" )
19571959
19581960 // Verify the values are of correct types
19591961 connectTime , ok := logger .Data [sql .ConnectTimeLogKey ].(time.Time )
@@ -1964,89 +1966,3 @@ func TestLoggerFieldsSetup(t *testing.T) {
19641966 require .True (t , ok , "Connection ID should be a uint32" )
19651967 require .Equal (t , conn .ConnectionID , connID , "Connection ID should match" )
19661968}
1967-
1968- // TestHandlerDoQueryIntegration tests the complete doQuery flow to ensure query time handling works
1969- func TestHandlerDoQueryIntegration (t * testing.T ) {
1970- e , pro := setupMemDB (require .New (t ))
1971- dbFunc := pro .Database
1972-
1973- handler := & Handler {
1974- e : e ,
1975- sm : NewSessionManager (
1976- sql .NewContext ,
1977- testSessionBuilder (pro ),
1978- sql .NoopTracer ,
1979- dbFunc ,
1980- sql .NewMemoryManager (nil ),
1981- sqle .NewProcessList (),
1982- "foo" ,
1983- ),
1984- readTimeout : time .Second ,
1985- }
1986-
1987- conn := newConn (1 )
1988- handler .NewConnection (conn )
1989- err := handler .ComInitDB (conn , "test" )
1990- require .NoError (t , err )
1991-
1992- // Execute a query - this will go through our modified doQuery code path
1993- err = handler .ComQuery (context .Background (), conn , "SELECT 1" , dummyCb )
1994- require .NoError (t , err )
1995-
1996- // Verify that the session has a logger with the expected fields
1997- session := handler .sm .session (conn )
1998- require .NotNil (t , session , "Session should exist" )
1999-
2000- logger := session .GetLogger ()
2001- require .NotNil (t , logger , "Session should have a logger" )
2002-
2003- // Verify base logging fields are present
2004- require .Contains (t , logger .Data , sql .ConnectTimeLogKey , "Logger should contain connect time" )
2005- require .Contains (t , logger .Data , sql .ConnectionIdLogField , "Logger should contain connection ID" )
2006-
2007- // Verify the connect time is reasonable
2008- connectTime , ok := logger .Data [sql .ConnectTimeLogKey ].(time.Time )
2009- require .True (t , ok , "Connect time should be a time.Time" )
2010- require .False (t , connectTime .IsZero (), "Connect time should not be zero" )
2011- require .True (t , connectTime .Before (time .Now ()) || connectTime .Equal (time .Now ()),
2012- "Connect time should be before or equal to current time" )
2013-
2014- // Verify connection ID matches
2015- connID , ok := logger .Data [sql .ConnectionIdLogField ].(uint32 )
2016- require .True (t , ok , "Connection ID should be a uint32" )
2017- require .Equal (t , conn .ConnectionID , connID , "Connection ID should match the connection" )
2018- }
2019-
2020- // TestQueryTimeLoggerBehavior tests that query time field can be added to logger entries
2021- func TestQueryTimeLoggerBehavior (t * testing.T ) {
2022- // Test demonstrates that the QueryTimeLogKey constant is available and can be used
2023- // for setting up logger fields with time.Now() calls during query execution
2024- require .NotEmpty (t , sql .QueryTimeLogKey , "QueryTimeLogKey should not be empty" )
2025-
2026- // Create a time value like what would be used in query logging
2027- queryTime := time .Now ()
2028-
2029- // Simulate what happens during query execution: create a logger with query time field
2030- baseLogger := & logrus.Entry {
2031- Data : make (logrus.Fields ),
2032- }
2033- baseLogger .Data [sql .ConnectTimeLogKey ] = time .Now ().Add (- 1 * time .Minute ) // connection established 1 minute ago
2034- baseLogger .Data [sql .ConnectionIdLogField ] = uint32 (123 )
2035-
2036- // Add query time field using time.Now() (this is what our modified handler does)
2037- loggerWithQueryTime := baseLogger .WithField (sql .QueryTimeLogKey , queryTime )
2038-
2039- // Verify the query time field was added
2040- require .Contains (t , loggerWithQueryTime .Data , sql .QueryTimeLogKey , "Logger should contain query time" )
2041- require .Contains (t , loggerWithQueryTime .Data , sql .ConnectTimeLogKey , "Logger should still contain connect time" )
2042- require .Contains (t , loggerWithQueryTime .Data , sql .ConnectionIdLogField , "Logger should still contain connection ID" )
2043-
2044- // Verify the query time value
2045- actualQueryTime , ok := loggerWithQueryTime .Data [sql .QueryTimeLogKey ].(time.Time )
2046- require .True (t , ok , "Query time should be a time.Time" )
2047- require .Equal (t , queryTime , actualQueryTime , "Query time should match the set value" )
2048-
2049- // Verify that query time and connect time are different (as expected)
2050- connectTime := loggerWithQueryTime .Data [sql .ConnectTimeLogKey ].(time.Time )
2051- require .True (t , queryTime .After (connectTime ), "Query time should be after connect time" )
2052- }
0 commit comments