diff --git a/apps/desktop/src/components/editor/QueryEditor.vue b/apps/desktop/src/components/editor/QueryEditor.vue index 7395ef23b..aa31d33ad 100644 --- a/apps/desktop/src/components/editor/QueryEditor.vue +++ b/apps/desktop/src/components/editor/QueryEditor.vue @@ -741,7 +741,7 @@ async function refreshSemanticDiagnostics() { setSemanticDiagnostics([]); return; } - if (props.databaseType === "elasticsearch") { + if (props.databaseType === "mongodb" || props.databaseType === "elasticsearch") { setSemanticDiagnostics([]); return; } diff --git a/apps/desktop/src/lib/sqlSemanticDiagnostics.ts b/apps/desktop/src/lib/sqlSemanticDiagnostics.ts index c0dfa0064..a4fd2a553 100644 --- a/apps/desktop/src/lib/sqlSemanticDiagnostics.ts +++ b/apps/desktop/src/lib/sqlSemanticDiagnostics.ts @@ -104,7 +104,7 @@ export function shouldRunSqlSemanticDiagnostics( cursor: number, options: { databaseType?: DatabaseType } = {}, ): boolean { - if (options.databaseType === "elasticsearch") return false; + if (options.databaseType === "mongodb" || options.databaseType === "elasticsearch") return false; const context = getSqlCompletionContext(sql, cursor); if (context.suggestTables || context.exclusiveTableSuggestions || context.exclusiveColumnSuggestions) return false; if (context.qualifier) return false; diff --git a/crates/dbx-core/src/models/connection.rs b/crates/dbx-core/src/models/connection.rs index 6d4327e45..9d7c9ff06 100644 --- a/crates/dbx-core/src/models/connection.rs +++ b/crates/dbx-core/src/models/connection.rs @@ -1685,7 +1685,7 @@ mod tests { assert_eq!( config.connection_url(), - "mysql://root:secret@gateway01.us-west-2.prod.aws.tidbcloud.com:4000/test?require_ssl=true&verify_ca=false&verify_identity=false&charset=utf8mb4" + "mysql://root:secret@gateway01.us-west-2.prod.aws.tidbcloud.com:4000/test?require_ssl=true&charset=utf8mb4&verify_ca=false&verify_identity=false" ); } diff --git a/packages/app-tests/sqlSemanticDiagnostics.test.ts b/packages/app-tests/sqlSemanticDiagnostics.test.ts index 5d314b00c..62a58ee49 100644 --- a/packages/app-tests/sqlSemanticDiagnostics.test.ts +++ b/packages/app-tests/sqlSemanticDiagnostics.test.ts @@ -93,3 +93,24 @@ test("defers diagnostics while the cursor is in table completion context", () => assert.equal(shouldRunSqlSemanticDiagnostics("select u.", "select u.".length), false); assert.equal(shouldRunSqlSemanticDiagnostics("select * from users where missing = 1", 42), true); }); + +test("skips diagnostics for MongoDB connections", () => { + assert.equal( + shouldRunSqlSemanticDiagnostics("db.my_collection.find({})", 0, { databaseType: "mongodb" }), + false, + ); +}); + +test("skips diagnostics for Elasticsearch connections", () => { + assert.equal( + shouldRunSqlSemanticDiagnostics("db.my_collection.find({})", 0, { databaseType: "elasticsearch" }), + false, + ); +}); + +test("still runs diagnostics for SQL connections", () => { + assert.equal( + shouldRunSqlSemanticDiagnostics("SELECT * FROM users WHERE id = 1", 42, { databaseType: "mysql" }), + true, + ); +});