@@ -34,6 +34,7 @@ import {
3434 DisplayType ,
3535 Filter ,
3636 SourceKind ,
37+ TSource ,
3738} from '@hyperdx/common-utils/dist/types' ;
3839import {
3940 ActionIcon ,
@@ -1091,22 +1092,39 @@ function DBSearchPage() {
10911092 ( {
10921093 where,
10931094 whereLanguage,
1095+ source,
10941096 } : {
10951097 where : SearchConfig [ 'where' ] ;
10961098 whereLanguage : SearchConfig [ 'whereLanguage' ] ;
1099+ source ?: TSource ;
10971100 } ) => {
1098- const qParams = new URLSearchParams ( {
1099- where : where || searchedConfig . where || '' ,
1100- whereLanguage : whereLanguage || 'sql' ,
1101- from : searchedTimeRange [ 0 ] . getTime ( ) . toString ( ) ,
1102- to : searchedTimeRange [ 1 ] . getTime ( ) . toString ( ) ,
1103- select : searchedConfig . select || '' ,
1104- source : searchedSource ?. id || '' ,
1105- filters : JSON . stringify ( searchedConfig . filters ?? [ ] ) ,
1106- isLive : 'false' ,
1107- liveInterval : interval . toString ( ) ,
1108- } ) ;
1109- return `/search?${ qParams . toString ( ) } ` ;
1101+ // When generating a search based on a different source,
1102+ // filters and select for the current source are not preserved.
1103+ if ( source && source . id !== searchedSource ?. id ) {
1104+ const qParams = new URLSearchParams ( {
1105+ where : where || '' ,
1106+ whereLanguage : whereLanguage || 'sql' ,
1107+ from : searchedTimeRange [ 0 ] . getTime ( ) . toString ( ) ,
1108+ to : searchedTimeRange [ 1 ] . getTime ( ) . toString ( ) ,
1109+ source : source . id ,
1110+ isLive : 'false' ,
1111+ liveInterval : interval . toString ( ) ,
1112+ } ) ;
1113+ return `/search?${ qParams . toString ( ) } ` ;
1114+ } else {
1115+ const qParams = new URLSearchParams ( {
1116+ where : where || searchedConfig . where || '' ,
1117+ whereLanguage : whereLanguage || 'sql' ,
1118+ from : searchedTimeRange [ 0 ] . getTime ( ) . toString ( ) ,
1119+ to : searchedTimeRange [ 1 ] . getTime ( ) . toString ( ) ,
1120+ select : searchedConfig . select || '' ,
1121+ source : searchedSource ?. id || '' ,
1122+ filters : JSON . stringify ( searchedConfig . filters ?? [ ] ) ,
1123+ isLive : 'false' ,
1124+ liveInterval : interval . toString ( ) ,
1125+ } ) ;
1126+ return `/search?${ qParams . toString ( ) } ` ;
1127+ }
11101128 } ,
11111129 [
11121130 interval ,
@@ -1829,6 +1847,7 @@ function DBSearchPage() {
18291847 dbSqlRowTableConfig,
18301848 isChildModalOpen : isDrawerChildModalOpen ,
18311849 setChildModalOpen : setDrawerChildModalOpen ,
1850+ source : searchedSource ,
18321851 } }
18331852 config = { dbSqlRowTableConfig }
18341853 sourceId = { searchedConfig . source }
0 commit comments