@@ -29,7 +29,6 @@ import (
29
29
"github.com/dolthub/vitess/go/race"
30
30
"github.com/dolthub/vitess/go/sqltypes"
31
31
"github.com/dolthub/vitess/go/vt/proto/query"
32
- "github.com/sirupsen/logrus"
33
32
"github.com/stretchr/testify/assert"
34
33
"github.com/stretchr/testify/require"
35
34
@@ -1954,6 +1953,9 @@ func TestLoggerFieldsSetup(t *testing.T) {
1954
1953
// Verify that the logger has the expected fields
1955
1954
require .Contains (t , logger .Data , sql .ConnectTimeLogKey , "Logger should contain connect time" )
1956
1955
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" )
1957
1959
1958
1960
// Verify the values are of correct types
1959
1961
connectTime , ok := logger .Data [sql .ConnectTimeLogKey ].(time.Time )
@@ -1964,89 +1966,3 @@ func TestLoggerFieldsSetup(t *testing.T) {
1964
1966
require .True (t , ok , "Connection ID should be a uint32" )
1965
1967
require .Equal (t , conn .ConnectionID , connID , "Connection ID should match" )
1966
1968
}
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