@@ -17,6 +17,7 @@ use databend_common_exception::Result;
17
17
use databend_common_meta_app:: storage:: StorageFsConfig ;
18
18
use databend_common_meta_app:: storage:: StorageParams ;
19
19
use databend_common_meta_app:: storage:: StorageS3Config ;
20
+ use databend_query:: sessions:: short_sql;
20
21
use databend_query:: sessions:: TableContext ;
21
22
use databend_query:: test_kits:: ConfigBuilder ;
22
23
use databend_query:: test_kits:: TestFixture ;
@@ -65,3 +66,29 @@ async fn test_get_storage_accessor_fs() -> Result<()> {
65
66
66
67
Ok ( ( ) )
67
68
}
69
+
70
+ #[ test]
71
+ fn test_short_sql ( ) {
72
+ // Test case 1: SQL query shorter than 10KB
73
+ let sql1 = "SELECT * FROM users WHERE id = 1;" . to_string ( ) ;
74
+ assert_eq ! ( short_sql( sql1. clone( ) ) , sql1) ;
75
+
76
+ // Test case 2: SQL query longer than 10KB and starts with "INSERT"
77
+ let long_sql = "INSERT INTO users (id, name, email) VALUES " . to_string ( )
78
+ + & "(1, 'John Doe', 'john@example.com'), " . repeat ( 1000 ) ;
79
+ let expected_result = long_sql. as_bytes ( ) [ ..10240 ] . to_vec ( ) ;
80
+ let expected_result = String :: from_utf8 ( expected_result) . unwrap ( ) + "..." ;
81
+ assert_eq ! ( short_sql( long_sql) , expected_result) ;
82
+
83
+ // Test case 3: SQL query longer than 10KB but does not start with "INSERT"
84
+ let long_sql = "SELECT * FROM users WHERE " . to_string ( ) + & "id = 1 OR " . repeat ( 1000 ) ;
85
+ assert_eq ! ( short_sql( long_sql. clone( ) ) , long_sql) ;
86
+
87
+ // Test case 4: Empty SQL query
88
+ let empty_sql = "" . to_string ( ) ;
89
+ assert_eq ! ( short_sql( empty_sql. clone( ) ) , empty_sql) ;
90
+
91
+ // Test case 5: SQL query with leading whitespace
92
+ let sql_with_whitespace = " SELECT * FROM users;" . to_string ( ) ;
93
+ assert_eq ! ( short_sql( sql_with_whitespace. clone( ) ) , sql_with_whitespace) ;
94
+ }
0 commit comments