From 43c1895afa40833e97e7cea7113588449c869301 Mon Sep 17 00:00:00 2001
From: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
Date: Thu, 8 Feb 2024 16:58:53 +0100
Subject: [PATCH] [QC] Remove `setDatabase` and `setDatabaseID` methods
 (#38550)

* Remove `setDatabaseID` method from the `StructuredQuery` prototype

* Remove `setDatabase` method from both Native and Structured queries
---
 .../src/metabase-lib/queries/NativeQuery.ts   |  7 ------
 .../metabase-lib/queries/StructuredQuery.ts   | 25 -------------------
 .../lib/queries/StructuredQuery.unit.spec.js  | 19 +++++++-------
 3 files changed, 10 insertions(+), 41 deletions(-)

diff --git a/frontend/src/metabase-lib/queries/NativeQuery.ts b/frontend/src/metabase-lib/queries/NativeQuery.ts
index 911f1243ceb..56fa3ebd3b4 100644
--- a/frontend/src/metabase-lib/queries/NativeQuery.ts
+++ b/frontend/src/metabase-lib/queries/NativeQuery.ts
@@ -153,13 +153,6 @@ export default class NativeQuery extends AtomicQuery {
 
   /* Methods unique to this query type */
 
-  /**
-   * @returns a new query with the provided Database set.
-   */
-  setDatabase(database: Database): NativeQuery {
-    return this.setDatabaseId(database.id);
-  }
-
   setDatabaseId(databaseId: DatabaseId): NativeQuery {
     if (databaseId !== this._databaseId()) {
       // TODO: this should reset the rest of the query?
diff --git a/frontend/src/metabase-lib/queries/StructuredQuery.ts b/frontend/src/metabase-lib/queries/StructuredQuery.ts
index bd026bfec11..632871d5325 100644
--- a/frontend/src/metabase-lib/queries/StructuredQuery.ts
+++ b/frontend/src/metabase-lib/queries/StructuredQuery.ts
@@ -196,31 +196,6 @@ class StructuredQuery extends AtomicQuery {
     return this._updateQuery(fn, []);
   }
 
-  /**
-   * @returns a new query with the provided Database set.
-   */
-  setDatabase(database: Database): StructuredQuery {
-    return this.setDatabaseId(database.id);
-  }
-
-  /**
-   * @returns a new query with the provided Database ID set.
-   */
-  setDatabaseId(databaseId: DatabaseId): StructuredQuery {
-    if (databaseId !== this._databaseId()) {
-      // TODO: this should reset the rest of the query?
-      return new StructuredQuery(
-        this._originalQuestion,
-        chain(this.datasetQuery())
-          .assoc("database", databaseId)
-          .assoc("query", {})
-          .value(),
-      );
-    } else {
-      return this;
-    }
-  }
-
   /**
    * @returns the table ID, if a table is selected.
    * @deprecated Use MLv2
diff --git a/frontend/test/metabase-lib/lib/queries/StructuredQuery.unit.spec.js b/frontend/test/metabase-lib/lib/queries/StructuredQuery.unit.spec.js
index f26cfe4ffe5..a986ddd1d7c 100644
--- a/frontend/test/metabase-lib/lib/queries/StructuredQuery.unit.spec.js
+++ b/frontend/test/metabase-lib/lib/queries/StructuredQuery.unit.spec.js
@@ -1,3 +1,4 @@
+import { chain } from "icepick";
 import { createMockMetadata } from "__support__/metadata";
 import {
   createMockDatabase,
@@ -277,9 +278,15 @@ describe("StructuredQuery", () => {
 
       describe("when the query is missing a database", () => {
         it("should not include db schemas in dependent  metadata", () => {
-          const dependentMetadata = query
-            .setDatabaseId(null)
-            .dependentMetadata();
+          const queryWithoutDatabase = new StructuredQuery(
+            query._originalQuestion,
+            chain(query.datasetQuery())
+              .assoc("database", null)
+              .assoc("query", {})
+              .value(),
+          );
+
+          const dependentMetadata = queryWithoutDatabase.dependentMetadata();
 
           expect(dependentMetadata.some(({ type }) => type === "schema")).toBe(
             false,
@@ -302,12 +309,6 @@ describe("StructuredQuery", () => {
         ).toBe(ORDERS_ID);
       });
     });
-    describe("setDatabase", () => {
-      it("allows you to set a new database", () => {
-        const db = metadata.database(ANOTHER_DB_ID);
-        expect(query.setDatabase(db)._database().id).toBe(db.id);
-      });
-    });
     describe("_sourceTableId", () => {
       it("Return the right table id", () => {
         expect(query._sourceTableId()).toBe(ORDERS_ID);
-- 
GitLab