fix(jdbc): avoid default max rows rewrite

This commit is contained in:
t8y2 committed 2026-06-18 17:00:44 +08:00
1 parent 46cefabe57
commit ffe535e40e
6 files changed
+43 -9

No files matched your search

+1 -1
View File
@@ -787,7 +787,7 @@ fn build_data_compare_select_sql(
);
}
// JDBC connections rely on Statement.setMaxRows() for row limiting.
// JDBC connections avoid SQL-level LIMIT; the agent truncates rows while reading.
if database_type == DatabaseType::Jdbc {
return format!("SELECT {select_columns} FROM {table}{order_by};");
}
+1 -1
View File
@@ -112,7 +112,7 @@ pub fn build_database_search_sql(options: DatabaseSearchSqlOptions) -> Option<Da
} else if options.database_type.is_some_and(uses_fetch_first) {
format!("SELECT * FROM {table} WHERE ({where_clause}) FETCH FIRST {limit} ROWS ONLY")
} else if options.database_type == Some(DatabaseType::Jdbc) {
// JDBC connections rely on Statement.setMaxRows() for row limiting.
// JDBC connections avoid SQL-level LIMIT; the agent truncates rows while reading.
format!("SELECT * FROM {table} WHERE ({where_clause});")
} else {
format!("SELECT * FROM {table} WHERE ({where_clause}) LIMIT {limit};")
+1 -1
View File
@@ -207,7 +207,7 @@ pub fn build_paginated_query_sql(options: PaginatedQuerySqlOptions) -> QuerySqlB
return ok(add_fetch_first_limit(&statement, safe_limit, safe_offset));
}
// JDBC connections rely on Statement.setMaxRows() for row limiting.
// JDBC connections avoid SQL-level LIMIT; the agent truncates rows while reading.
if options.database_type == Some(DatabaseType::Jdbc) {
return ok(format!("{statement};"));
}
@@ -121,8 +121,8 @@ pub fn build_table_data_select_sql(options: TableDataSelectSqlOptions) -> String
let offset =
options.offset.filter(|offset| *offset > 0).map(|offset| format!(" OFFSET {offset}")).unwrap_or_default();
// JDBC connections rely on Statement.setMaxRows() for row limiting instead of
// SQL-level LIMIT, which is not universally supported across all JDBC drivers.
// JDBC connections avoid SQL-level LIMIT because it is not universally
// supported across all JDBC drivers; the agent truncates rows while reading.
if database_type == Some(DatabaseType::Jdbc) {
return format!("SELECT {select_columns} FROM {table_alias}{where_clause}{order};");
}
@@ -173,7 +173,7 @@ pub fn build_table_select_sql(options: TableSelectSqlOptions<'_>) -> String {
return format!("SELECT TOP ({limit}) {select_columns} FROM {table}{order_by}");
}
// JDBC connections rely on Statement.setMaxRows() for row limiting.
// JDBC connections avoid SQL-level LIMIT; the agent truncates rows while reading.
if database_type == Some(DatabaseType::Jdbc) {
return format!("SELECT {select_columns} FROM {table}{order_by};");
}