Skip to content
Snippets Groups Projects
Unverified Commit 7ab9d935 authored by Tom Robinson's avatar Tom Robinson Committed by GitHub
Browse files

Fix "saved questions" database behavior in notebook mode + joins (#10506)

Use underlying db id for saved questions 'tables' in order to show correct notebook options + joinable questions
parent 0571c4ac
No related merge requests found
......@@ -62,4 +62,18 @@ export default class Database extends Base {
newQuestion(): Question {
return Question.create({ databaseId: this.id, metadata: this.metadata });
}
/** Returns a database containing only the saved questions from the same database, if any */
savedQuestionsDatabase(): ?Database {
const database = this.metadata
.databasesList()
.find(db => db.is_saved_questions);
if (database) {
const tables = database.tables.filter(t => t.db_id === this.id);
if (tables.length > 0) {
return new Database({ ...database, tables });
}
}
return null;
}
}
......@@ -123,11 +123,8 @@ class JoinClause extends React.Component {
<DatabaseSchemaAndTableDataSelector
databases={[
query.database(),
...query
.metadata()
.databasesList()
.filter(db => db.is_saved_questions),
]}
query.database().savedQuestionsDatabase(),
].filter(d => d)}
selectedDatabaseId={query.databaseId()}
selectedTableId={join.joinSourceTableId()}
setSourceTableFn={tableId => {
......
......@@ -10,9 +10,7 @@
[util :as u]]
[metabase.api.common :as api]
[metabase.driver.util :as driver.u]
[metabase.mbql
[schema :as mbql.s]
[util :as mbql.u]]
[metabase.mbql.util :as mbql.u]
[metabase.models
[card :refer [Card]]
[field :refer [Field]]
......@@ -266,7 +264,7 @@
;; if collection isn't already hydrated then do so
(let [card (hydrate card :collection)]
(cond-> {:id (str "card__" (u/get-id card))
:db_id mbql.s/saved-questions-virtual-database-id
:db_id (:database_id card)
:display_name (:name card)
:schema (get-in card [:collection :name] "Everything else")
:description (:description card)}
......
......@@ -349,7 +349,7 @@
(defn- virtual-table-for-card [card & {:as kvs}]
(merge
{:id (format "card__%d" (u/get-id card))
:db_id mbql.s/saved-questions-virtual-database-id
:db_id (:database_id card)
:display_name (:name card)
:schema "Everything else"
:description nil}
......
......@@ -10,7 +10,6 @@
[util :as u]]
[metabase.api.table :as table-api]
[metabase.driver.util :as driver.u]
[metabase.mbql.schema :as mbql.s]
[metabase.middleware.util :as middleware.u]
[metabase.models
[card :refer [Card]]
......@@ -422,7 +421,7 @@
(let [card-virtual-table-id (str "card__" (u/get-id card))]
{:display_name "Go Dubs!"
:schema "Everything else"
:db_id mbql.s/saved-questions-virtual-database-id
:db_id (:database_id card)
:id card-virtual-table-id
:description nil
:dimension_options (default-dimension-options)
......@@ -470,7 +469,7 @@
(let [card-virtual-table-id (str "card__" (u/get-id card))]
{:display_name "Users"
:schema "Everything else"
:db_id mbql.s/saved-questions-virtual-database-id
:db_id (:database_id card)
:id card-virtual-table-id
:description nil
:dimension_options (default-dimension-options)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment