Skip to content

Commit 268d35c

Browse files
committed
Catch exception for issue 42s02
1 parent e7aa10c commit 268d35c

File tree

3 files changed

+26
-18
lines changed

3 files changed

+26
-18
lines changed

deps.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
:aliases
2222
{:dev
2323
{:extra-deps
24-
{ io.github.metabase/metabase { :git/tag "v0.54.4", :git/sha "33dddaa" } }
24+
{ io.github.metabase/metabase { :git/tag "v0.50.31", :git/sha "33dddaa" } }
2525
}
2626
}
2727
}

resources/metabase-plugin.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
info:
22
name: Metabase Teradata Driver
33
# also replace the version in deps.edn if you change the metabase version here
4-
version: 1.1.14-metabase-v0.54.4-teradata-jdbc-20.00
4+
version: 1.1.16-metabase-v0.50.31-teradata-jdbc-20.00
55
description: Allows Metabase to connect to Teradata databases. Community Supported driver.
66
dependencies:
77
- class: com.teradata.jdbc.TeraDriver

src/metabase/driver/teradata.clj

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,22 +98,29 @@
9898
(defn- jdbc-fields-metadata
9999
"Fetch metadata about the Fields belonging to a Table or View using a SELECT * query."
100100
[driver ^Connection conn db-name-or-nil schema table-name]
101-
(let [sql (str "SELECT * FROM " (when schema (str schema ".")) table-name " WHERE 1=0")] ; Query with no rows
102-
(with-open [stmt (.createStatement conn)
103-
rs (.executeQuery stmt sql)]
104-
(let [metadata (.getMetaData rs)]
105-
(mapv (fn [i]
106-
(let [column-name (.getColumnName metadata i)
107-
database-type (.getColumnTypeName metadata i)
108-
column-size (.getColumnDisplaySize metadata i)
109-
nullable (.isNullable metadata i)
110-
remarks (.getColumnLabel metadata i)]
111-
{:name column-name
112-
:database-type database-type
113-
:column-size column-size
114-
:nullable? (= nullable DatabaseMetaData/columnNullable)
115-
:remarks remarks}))
116-
(range 1 (inc (.getColumnCount metadata))))))))
101+
(try
102+
(let [sql (str "SELECT * FROM " (when schema (str schema ".")) table-name " WHERE 1=0")] ; Query with no rows
103+
(with-open [stmt (.createStatement conn)
104+
rs (.executeQuery stmt sql)]
105+
(let [metadata (.getMetaData rs)]
106+
(mapv (fn [i]
107+
(let [column-name (.getColumnName metadata i)
108+
database-type (.getColumnTypeName metadata i)
109+
column-size (.getColumnDisplaySize metadata i)
110+
nullable (.isNullable metadata i)
111+
remarks (.getColumnLabel metadata i)]
112+
{:name column-name
113+
:database-type database-type
114+
:column-size column-size
115+
:nullable? (= nullable DatabaseMetaData/columnNullable)
116+
:remarks remarks}))
117+
(range 1 (inc (.getColumnCount metadata)))))))
118+
(catch java.sql.SQLException e
119+
(if (= "42S02" (.getSQLState e)) ; Check for SQLState 42S02 (object does not exist)
120+
(do
121+
(log/warn (trs "Table or view ''{0}'' in schema ''{1}'' does not exist." table-name schema))
122+
[]) ; Return an empty field set
123+
(throw e))))) ; Re-throw other exceptions
117124

118125
(defn ^:private fields-metadata
119126
[driver ^Connection conn {schema :schema, table-name :name} ^String db-name-or-nil]
@@ -359,3 +366,4 @@
359366
:dbname
360367
:sid
361368
:catalog))))})
369+

0 commit comments

Comments
 (0)