metabase / metabase

The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:
https://metabase.com
Other
37.19k stars 4.93k forks source link

Oracle timestamps fingerprinting error (No implementation of method: :->temporal of protocol: #'metabase.sync.analyze.fingerprint.fingerprinters/ITemporalCoerceable) #42325

Closed jsantana3c closed 1 day ago

jsantana3c commented 1 month ago

Describe the bug timestamps in my Oracle instance aren't fingerprinted properly.

Logs

2024-05-07 11:04:40,565 WARN sync.util :: Error generating fingerprint for Field ''DATA_PRESTAZIONE''
2024-05-07T11:04:40.566170699Z java.lang.IllegalArgumentException: No implementation of method: :->temporal of protocol: #'metabase.sync.analyze.fingerprint.fingerprinters/ITemporalCoerceable found for class: oracle.sql.TIMESTAMPLTZ
2024-05-07T11:04:40.566205964Z  at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:584)
2024-05-07T11:04:40.566213532Z  at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:576)
2024-05-07T11:04:40.566218136Z  at metabase.sync.analyze.fingerprint.fingerprinters$fn__62682$G__62677__62687.invoke(fingerprinters.clj:189)
2024-05-07T11:04:40.566222491Z  at clojure.core$map$fn__5931$fn__5932.invoke(core.clj:2759)
2024-05-07T11:04:40.566226926Z  at redux.core$post_complete$fn__62227.invoke(core.cljc:15)
2024-05-07T11:04:40.566231037Z  at redux.core$juxt$fn__62233$fn__62238.invoke(core.cljc:37)
2024-05-07T11:04:40.566235060Z  at clojure.core$map$fn__5939.invoke(core.clj:2777)
2024-05-07T11:04:40.566239174Z  at clojure.lang.LazySeq.sval(LazySeq.java:42)
2024-05-07T11:04:40.566243234Z  at clojure.lang.LazySeq.seq(LazySeq.java:51)
2024-05-07T11:04:40.566247266Z  at clojure.lang.RT.seq(RT.java:535)
2024-05-07T11:04:40.566251263Z  at clojure.core$seq__5467.invokeStatic(core.clj:139)
2024-05-07T11:04:40.566255289Z  at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
2024-05-07T11:04:40.566260041Z  at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)
2024-05-07T11:04:40.566264369Z  at clojure.core.protocols$fn__8236.invoke(protocols.clj:75)
2024-05-07T11:04:40.566268996Z  at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)
2024-05-07T11:04:40.566273128Z  at clojure.core$reduce.invokeStatic(core.clj:6887)
2024-05-07T11:04:40.566277216Z  at clojure.core$into.invokeStatic(core.clj:6959)
2024-05-07T11:04:40.566281295Z  at clojure.core$mapv.invokeStatic(core.clj:6971)
2024-05-07T11:04:40.566285398Z  at clojure.core$mapv.invoke(core.clj:6971)
2024-05-07T11:04:40.566289310Z  at redux.core$juxt$fn__62233.invoke(core.cljc:34)
2024-05-07T11:04:40.566293326Z  at redux.core$post_complete$fn__62227.invoke(core.cljc:15)
2024-05-07T11:04:40.566297426Z  at metabase.sync.analyze.fingerprint.fingerprinters$with_error_handling$fn__62624$fn__62629.invoke(fingerprinters.clj:84)
2024-05-07T11:04:40.566301704Z  at metabase.sync.util$do_with_error_handling.invokeStatic(util.clj:190)
2024-05-07T11:04:40.566305906Z  at metabase.sync.util$do_with_error_handling.invoke(util.clj:183)
2024-05-07T11:04:40.566310010Z  at metabase.sync.analyze.fingerprint.fingerprinters$with_error_handling$fn__62624.invoke(fingerprinters.clj:84)
2024-05-07T11:04:40.566314337Z  at metabase.sync.analyze.fingerprint.fingerprinters$col_wise$fn__62587$fn__62592.invoke(fingerprinters.clj:34)
2024-05-07T11:04:40.566320728Z  at clojure.core$map$fn__5942.invoke(core.clj:2783)
2024-05-07T11:04:40.566324962Z  at clojure.lang.LazySeq.sval(LazySeq.java:42)
2024-05-07T11:04:40.566329001Z  at clojure.lang.LazySeq.seq(LazySeq.java:51)
2024-05-07T11:04:40.566333475Z  at clojure.lang.Cons.next(Cons.java:39)
2024-05-07T11:04:40.566343107Z  at clojure.lang.RT.next(RT.java:713)
2024-05-07T11:04:40.566347678Z  at clojure.core$next__5451.invokeStatic(core.clj:64)
2024-05-07T11:04:40.566352107Z  at clojure.core.protocols$fn__8249.invokeStatic(protocols.clj:169)
2024-05-07T11:04:40.566356199Z  at clojure.core.protocols$fn__8249.invoke(protocols.clj:124)
2024-05-07T11:04:40.566360228Z  at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19)
2024-05-07T11:04:40.566364326Z  at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
2024-05-07T11:04:40.566368409Z  at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)
2024-05-07T11:04:40.566372540Z  at clojure.core.protocols$fn__8236.invoke(protocols.clj:75)
2024-05-07T11:04:40.566376577Z  at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)
2024-05-07T11:04:40.566380825Z  at clojure.core$reduce.invokeStatic(core.clj:6887)
2024-05-07T11:04:40.566559440Z  at clojure.core$into.invokeStatic(core.clj:6959)
2024-05-07T11:04:40.566711164Z  at clojure.core$mapv.invokeStatic(core.clj:6971)
2024-05-07T11:04:40.566761711Z  at clojure.core$mapv.invoke(core.clj:6971)
2024-05-07T11:04:40.566874297Z  at metabase.sync.analyze.fingerprint.fingerprinters$col_wise$fn__62587.invoke(fingerprinters.clj:31)
2024-05-07T11:04:40.566982010Z  at redux.core$juxt$fn__62233$fn__62238.invoke(core.cljc:37)
2024-05-07T11:04:40.567074877Z  at clojure.core$map$fn__5939.invoke(core.clj:2777)
2024-05-07T11:04:40.567120787Z  at clojure.lang.LazySeq.sval(LazySeq.java:42)
2024-05-07T11:04:40.567264541Z  at clojure.lang.LazySeq.seq(LazySeq.java:51)
2024-05-07T11:04:40.567420891Z  at clojure.lang.RT.seq(RT.java:535)
2024-05-07T11:04:40.567479195Z  at clojure.core$seq__5467.invokeStatic(core.clj:139)
2024-05-07T11:04:40.567510533Z  at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
2024-05-07T11:04:40.567541508Z  at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)
2024-05-07T11:04:40.567725407Z  at clojure.core.protocols$fn__8236.invoke(protocols.clj:75)
2024-05-07T11:04:40.567978299Z  at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)
2024-05-07T11:04:40.568147442Z  at clojure.core$reduce.invokeStatic(core.clj:6887)
2024-05-07T11:04:40.568322016Z  at clojure.core$into.invokeStatic(core.clj:6959)
2024-05-07T11:04:40.568405725Z  at clojure.core$mapv.invokeStatic(core.clj:6971)
2024-05-07T11:04:40.568479292Z  at clojure.core$mapv.invoke(core.clj:6971)
2024-05-07T11:04:40.568530972Z  at redux.core$juxt$fn__62233.invoke(core.cljc:34)
2024-05-07T11:04:40.568615028Z  at redux.core$post_complete$fn__62227.invoke(core.cljc:15)
2024-05-07T11:04:40.568748834Z  at metabase.query_processor.reducible$combine_additional_reducing_fns$combine_additional_reducing_fns_rf_STAR___62864$fn__62867$fn__62868.invoke(reducible.clj:230)
2024-05-07T11:04:40.568829513Z  at clojure.core$map$fn__5939.invoke(core.clj:2777)
2024-05-07T11:04:40.568965629Z  at clojure.lang.LazySeq.sval(LazySeq.java:42)
2024-05-07T11:04:40.569097954Z  at clojure.lang.LazySeq.seq(LazySeq.java:51)
2024-05-07T11:04:40.569182727Z  at clojure.lang.RT.seq(RT.java:535)
2024-05-07T11:04:40.569366421Z  at clojure.core$seq__5467.invokeStatic(core.clj:139)
2024-05-07T11:04:40.569433941Z  at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
2024-05-07T11:04:40.569472177Z  at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)
2024-05-07T11:04:40.569513896Z  at clojure.core.protocols$fn__8236.invoke(protocols.clj:75)
2024-05-07T11:04:40.569688031Z  at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)
2024-05-07T11:04:40.569735494Z  at clojure.core$reduce.invokeStatic(core.clj:6887)
2024-05-07T11:04:40.569840406Z  at clojure.core$into.invokeStatic(core.clj:6959)
2024-05-07T11:04:40.569937343Z  at clojure.core$mapv.invokeStatic(core.clj:6971)
2024-05-07T11:04:40.570119432Z  at clojure.core$mapv.invoke(core.clj:6971)
2024-05-07T11:04:40.570280157Z  at metabase.query_processor.reducible$combine_additional_reducing_fns$combine_additional_reducing_fns_rf_STAR___62864$fn__62867.invoke(reducible.clj:227)
2024-05-07T11:04:40.570373714Z  at metabase.query_processor.reducible$combine_additional_reducing_fns$combine_additional_reducing_fns_rf_STAR___62864.invoke(reducible.clj:226)
2024-05-07T11:04:40.570446851Z  at clojure.core$take$fn__5974$fn__5975.invoke(core.clj:2894)
2024-05-07T11:04:40.570540861Z  at metabase.query_processor.middleware.add_rows_truncated$add_rows_truncated_xform$fn__71189.invoke(add_rows_truncated.clj:34)
2024-05-07T11:04:40.570587730Z  at metabase.query_processor.middleware.format_rows$format_rows_xform$fn__72904.invoke(format_rows.clj:74)
2024-05-07T11:04:40.570631918Z  at clojure.core$map$fn__5931$fn__5932.invoke(core.clj:2759)
2024-05-07T11:04:40.570671140Z  at metabase.query_processor.reducible$reducible_rows$reify__62856.reduce(reducible.clj:177)
2024-05-07T11:04:40.570708080Z  at clojure.core$transduce.invokeStatic(core.clj:6947)
2024-05-07T11:04:40.570742123Z  at clojure.core$transduce.invokeStatic(core.clj:6943)
2024-05-07T11:04:40.570786628Z  at clojure.core$transduce.invoke(core.clj:6934)
2024-05-07T11:04:40.570943006Z  at metabase.query_processor.context.default$default_reducef$fn__50536.invoke(default.clj:34)
2024-05-07T11:04:40.571063688Z  at metabase.query_processor.context.default$default_reducef.invokeStatic(default.clj:33)
2024-05-07T11:04:40.571222416Z  at metabase.query_processor.context.default$default_reducef.invoke(default.clj:25)
2024-05-07T11:04:40.571271378Z  at metabase.query_processor.context$reducef.invokeStatic(context.clj:70)
2024-05-07T11:04:40.571365431Z  at metabase.query_processor.context$reducef.invoke(context.clj:63)
2024-05-07T11:04:40.571446365Z  at metabase.query_processor.context.default$default_runf$respond_STAR___50540.invoke(default.clj:45)
2024-05-07T11:04:40.571589526Z  at metabase.driver.oracle$remove_rownum_column.invokeStatic(oracle.clj:494)
2024-05-07T11:04:40.571694671Z  at metabase.driver.oracle$remove_rownum_column.invoke(oracle.clj:490)
2024-05-07T11:04:40.571765847Z  at clojure.core$partial$fn__5908.invoke(core.clj:2642)
2024-05-07T11:04:40.571938468Z  at metabase.driver.sql_jdbc.execute$execute_reducible_query$fn__79439.invoke(execute.clj:710)
2024-05-07T11:04:40.572212061Z  at metabase.driver.sql_jdbc.execute$fn__79232$fn__79233.invoke(execute.clj:389)
2024-05-07T11:04:40.572321039Z  at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invokeStatic(execute.clj:335)
2024-05-07T11:04:40.572515981Z  at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invoke(execute.clj:318)
2024-05-07T11:04:40.572588136Z  at metabase.driver.sql_jdbc.execute$fn__79232.invokeStatic(execute.clj:383)
2024-05-07T11:04:40.572651493Z  at metabase.driver.sql_jdbc.execute$fn__79232.invoke(execute.clj:381)
2024-05-07T11:04:40.572827817Z  at clojure.lang.MultiFn.invoke(MultiFn.java:244)
2024-05-07T11:04:40.572961244Z  at metabase.driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:693)
2024-05-07T11:04:40.573005592Z  at metabase.driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:679)
2024-05-07T11:04:40.573090656Z  at metabase.driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:690)
2024-05-07T11:04:40.573165498Z  at metabase.driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:679)
2024-05-07T11:04:40.573203458Z  at metabase.driver.sql_jdbc$fn__106810.invokeStatic(sql_jdbc.clj:78)
2024-05-07T11:04:40.573236391Z  at metabase.driver.sql_jdbc$fn__106810.invoke(sql_jdbc.clj:76)
2024-05-07T11:04:40.573274252Z  at metabase.driver.oracle$fn__125736.invokeStatic(oracle.clj:507)
2024-05-07T11:04:40.573526551Z  at metabase.driver.oracle$fn__125736.invoke(oracle.clj:505)
2024-05-07T11:04:40.573700947Z  at clojure.lang.MultiFn.invoke(MultiFn.java:244)
2024-05-07T11:04:40.573756839Z  at metabase.query_processor.context$executef.invokeStatic(context.clj:60)
2024-05-07T11:04:40.573773398Z  at metabase.query_processor.context$executef.invoke(context.clj:49)
2024-05-07T11:04:40.573796911Z  at metabase.query_processor.context.default$default_runf.invokeStatic(default.clj:44)
2024-05-07T11:04:40.573855222Z  at metabase.query_processor.context.default$default_runf.invoke(default.clj:42)
2024-05-07T11:04:40.574031521Z  at metabase.query_processor.context$runf.invokeStatic(context.clj:46)
2024-05-07T11:04:40.574379261Z  at metabase.query_processor.context$runf.invoke(context.clj:40)
2024-05-07T11:04:40.574444715Z  at metabase.query_processor.reducible$identity_qp.invokeStatic(reducible.clj:39)
2024-05-07T11:04:40.574468818Z  at metabase.query_processor.reducible$identity_qp.invoke(reducible.clj:36)
2024-05-07T11:04:40.574490616Z  at metabase.query_processor.middleware.cache$maybe_return_cached_results$maybe_return_cached_results_STAR___72255.invoke(cache.clj:229)
2024-05-07T11:04:40.574516443Z  at metabase.query_processor.middleware.permissions$check_query_permissions$fn__66604.invoke(permissions.clj:140)
2024-05-07T11:04:40.574620459Z  at metabase.query_processor.middleware.enterprise$check_download_permissions_middleware$fn__72076.invoke(enterprise.clj:51)
2024-05-07T11:04:40.574676851Z  at metabase.query_processor.middleware.enterprise$maybe_apply_column_level_perms_check_middleware$fn__72086.invoke(enterprise.clj:64)
2024-05-07T11:04:40.574716067Z  at metabase.query_processor.middleware.mbql_to_native$mbql__GT_native$fn__71518.invoke(mbql_to_native.clj:24)
2024-05-07T11:04:40.574757103Z  at metabase.query_processor$fn__73423$combined_post_process__73428$combined_post_process_STAR___73429.invoke(query_processor.clj:262)
2024-05-07T11:04:40.574798371Z  at metabase.query_processor$fn__73423$combined_pre_process__73424$combined_pre_process_STAR___73425.invoke(query_processor.clj:259)
2024-05-07T11:04:40.574837908Z  at metabase.query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__66701.invoke(fetch_source_query.clj:303)
2024-05-07T11:04:40.574866326Z  at metabase.query_processor.middleware.resolve_database_and_driver$resolve_driver_and_database_local_values$fn__72166$fn__72170.invoke(resolve_database_and_driver.clj:77)
2024-05-07T11:04:40.574892453Z  at metabase.driver$do_with_driver.invokeStatic(driver.clj:97)
2024-05-07T11:04:40.574996758Z  at metabase.driver$do_with_driver.invoke(driver.clj:92)
2024-05-07T11:04:40.575154113Z  at metabase.query_processor.middleware.resolve_database_and_driver$resolve_driver_and_database_local_values$fn__72166.invoke(resolve_database_and_driver.clj:76)
2024-05-07T11:04:40.575329117Z  at metabase.query_processor.middleware.store$initialize_store$fn__67328$fn__67329.invoke(store.clj:14)
2024-05-07T11:04:40.575463185Z  at metabase.query_processor.store$do_with_metadata_provider.invokeStatic(store.clj:169)
2024-05-07T11:04:40.575514596Z  at metabase.query_processor.store$do_with_metadata_provider.invoke(store.clj:150)
2024-05-07T11:04:40.575656445Z  at metabase.query_processor.store$do_with_metadata_provider.invokeStatic(store.clj:158)
2024-05-07T11:04:40.575755185Z  at metabase.query_processor.store$do_with_metadata_provider.invoke(store.clj:150)
2024-05-07T11:04:40.575812609Z  at metabase.query_processor.middleware.store$initialize_store$fn__67328.invoke(store.clj:13)
2024-05-07T11:04:40.575857601Z  at metabase.query_processor.middleware.resolve_database_and_driver$resolve_database$fn__72163.invoke(resolve_database_and_driver.clj:60)
2024-05-07T11:04:40.576050864Z  at metabase.query_processor.middleware.normalize_query$normalize$fn__72468.invoke(normalize_query.clj:38)
2024-05-07T11:04:40.576260777Z  at metabase.query_processor.middleware.enterprise$fn__72103$handle_audit_app_internal_queries__72104$fn__72106.invoke(enterprise.clj:96)
2024-05-07T11:04:40.576347461Z  at metabase.query_processor.middleware.enterprise$handle_audit_app_internal_queries_middleware$fn__72114.invoke(enterprise.clj:103)
2024-05-07T11:04:40.576486303Z  at metabase.query_processor.middleware.constraints$mark_needs_default_userland_constraints$fn__71229.invoke(constraints.clj:104)
2024-05-07T11:04:40.577094352Z  at metabase.query_processor.middleware.process_userland_query$process_userland_query$fn__72399.invoke(process_userland_query.clj:156)
2024-05-07T11:04:40.577351046Z  at metabase.query_processor.middleware.catch_exceptions$catch_exceptions$fn__73000.invoke(catch_exceptions.clj:171)
2024-05-07T11:04:40.577609015Z  at metabase.query_processor.reducible$async_qp$qp_STAR___62841$thunk__62843.invoke(reducible.clj:126)
2024-05-07T11:04:40.577770166Z  at metabase.query_processor.reducible$async_qp$qp_STAR___62841.invoke(reducible.clj:132)
2024-05-07T11:04:40.577865679Z  at clojure.lang.AFn.applyToHelper(AFn.java:160)
2024-05-07T11:04:40.577911855Z  at clojure.lang.AFn.applyTo(AFn.java:144)
2024-05-07T11:04:40.577959892Z  at clojure.core$apply.invokeStatic(core.clj:667)
2024-05-07T11:04:40.577997161Z  at clojure.core$apply.invoke(core.clj:662)
2024-05-07T11:04:40.578031109Z  at metabase.query_processor.reducible$sync_qp$qp_STAR___62853.doInvoke(reducible.clj:153)
2024-05-07T11:04:40.578158434Z  at clojure.lang.RestFn.applyTo(RestFn.java:137)
2024-05-07T11:04:40.578254899Z  at clojure.core$apply.invokeStatic(core.clj:669)
2024-05-07T11:04:40.578353774Z  at clojure.core$apply.invoke(core.clj:662)
2024-05-07T11:04:40.578516573Z  at metabase.query_processor$process_userland_query.invokeStatic(query_processor.clj:402)
2024-05-07T11:04:40.578694325Z  at metabase.query_processor$process_userland_query.doInvoke(query_processor.clj:398)
2024-05-07T11:04:40.578823522Z  at clojure.lang.RestFn.invoke(RestFn.java:439)
2024-05-07T11:04:40.579053354Z  at metabase.query_processor$process_query_and_save_execution_BANG_.invokeStatic(query_processor.clj:416)
2024-05-07T11:04:40.579141197Z  at metabase.query_processor$process_query_and_save_execution_BANG_.invoke(query_processor.clj:406)
2024-05-07T11:04:40.579197208Z  at metabase.query_processor$process_query_and_save_with_max_results_constraints_BANG_.invokeStatic(query_processor.clj:431)
2024-05-07T11:04:40.579246505Z  at metabase.query_processor$process_query_and_save_with_max_results_constraints_BANG_.invoke(query_processor.clj:421)
2024-05-07T11:04:40.579298697Z  at metabase.api.dataset$run_query_async$fn__93965.invoke(dataset.clj:79)
2024-05-07T11:04:40.579379882Z  at clojure.lang.AFn.applyToHelper(AFn.java:154)
2024-05-07T11:04:40.579729924Z  at clojure.lang.AFn.applyTo(AFn.java:144)
2024-05-07T11:04:40.579869451Z  at clojure.core$apply.invokeStatic(core.clj:667)
2024-05-07T11:04:40.580083247Z  at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
2024-05-07T11:04:40.580270655Z  at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
2024-05-07T11:04:40.580355650Z  at clojure.lang.RestFn.applyTo(RestFn.java:142)
2024-05-07T11:04:40.580399461Z  at clojure.core$apply.invokeStatic(core.clj:671)
2024-05-07T11:04:40.580433882Z  at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
2024-05-07T11:04:40.580465414Z  at clojure.lang.RestFn.invoke(RestFn.java:408)
2024-05-07T11:04:40.580534798Z  at metabase.query_processor.streaming$streaming_response_STAR_$fn__53270$fn__53272.invoke(streaming.clj:168)
2024-05-07T11:04:40.580695717Z  at metabase.query_processor.streaming$streaming_response_STAR_$fn__53270.invoke(streaming.clj:167)
2024-05-07T11:04:40.580758544Z  at clojure.lang.AFn.applyToHelper(AFn.java:156)
2024-05-07T11:04:40.580968845Z  at clojure.lang.AFn.applyTo(AFn.java:144)
2024-05-07T11:04:40.581040990Z  at clojure.core$apply.invokeStatic(core.clj:667)
2024-05-07T11:04:40.581215766Z  at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
2024-05-07T11:04:40.581304799Z  at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
2024-05-07T11:04:40.581359272Z  at clojure.lang.RestFn.applyTo(RestFn.java:142)
2024-05-07T11:04:40.581408645Z  at clojure.core$apply.invokeStatic(core.clj:671)
2024-05-07T11:04:40.581449634Z  at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
2024-05-07T11:04:40.581494986Z  at clojure.lang.RestFn.invoke(RestFn.java:421)
2024-05-07T11:04:40.581576329Z  at metabase.async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:69)
2024-05-07T11:04:40.581692305Z  at metabase.async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:67)
2024-05-07T11:04:40.581843996Z  at metabase.async.streaming_response$do_f_async$task__43762.invoke(streaming_response.clj:88)
2024-05-07T11:04:40.581901445Z  at clojure.lang.AFn.run(AFn.java:22)
2024-05-07T11:04:40.581966943Z  at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
2024-05-07T11:04:40.582076479Z  at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
2024-05-07T11:04:40.582216756Z  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2024-05-07T11:04:40.582376188Z  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(

To Reproduce Steps to reproduce the behavior:

  1. Add a Oracle Database (ojdbc8 as per docs)
  2. fingerprint database
  3. visualize a table with a timestamp type

Expected behavior the timestamps should be properly fingerprinted and rendered.

Screenshots image

Severity it's preventing my from using the product at all, when creating a model, based on a native query, the filters on the dashboard are not working.

Additional context DBMS: Oracle (ver. Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

Metabase Diagnostic Info

{
  "browser-info": {
    "language": "it-IT",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.23+9",
    "java.vendor": "Eclipse Adoptium",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "11.0.23",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.23+9",
    "os.name": "Linux",
    "os.version": "5.15.146.1-microsoft-standard-WSL2",
    "user.language": "en",
    "user.timezone": "GMT"
  },
  "metabase-info": {
    "databases": [
      "oracle"
    ],
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "16.2 (Debian 16.2-1.pgdg120+2)"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.7.2"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2024-05-02",
      "tag": "v0.49.8",
      "hash": "38cb850"
    },
    "settings": {
      "report-timezone": null
    }
  }
}
jsantana3c commented 1 month ago

when creating a model with native SQL, casting it as timestamp: SELECT cast(column as timestamp) as column_a from table;

it's working properly, but using that column (and adding the metadata etc) the filter on the dashboard doesn't work either.

paoliniluis commented 1 month ago

can you give us the DDL of the table?

jsantana3c commented 1 month ago
create table example_table
(
    ID         NUMBER                            not null
        constraint "pk_id_table"
            primary key,
    property1  NUMBER,
    event_date TIMESTAMP(6) WITH LOCAL TIME ZONE not null,
    property2  CHAR                              not null
        constraint CHK_property2
            check (property2 IN ('T', 'F')),
    property3  NUMBER,
    property4  NUMBER,
    property5  NUMBER,
    property6  NUMBER,
    property7  NUMBER,
    property8  CHAR                              not null
        constraint CHK_property8
            check (property8 IN ('T', 'F')),
    property9  CHAR                              not null
        constraint CHK_property9
            check (property9 IN ('T', 'F')),
    property10 NUMBER,
    property11 CHAR default 'F'                  not null
        constraint CHK_property11
            check (property11 IN ('T', 'F')),
    property12 CHAR,
    property13 VARCHAR2(20),
    property14 CLOB,
    property15 CHAR
)
jsantana3c commented 1 month ago

@paoliniluis sorry to ping you, wanted to know if there's anyway I can help fix this, can you give me the starting points to check what can I do?

paoliniluis commented 1 week ago

@jsantana3c another customer just hit this one as well so I'll be prioritizing this today

paoliniluis commented 1 week ago

I wasn't able to hit the issue on the timestamp, but rather on timestamp diff's

Repro: 1) run this in your oracle DB:

create table table1 (

    name_col       VARCHAR(255),

    number_col     NUMBER(19,0),

    timestamp1_col TIMESTAMP,

    timestamp2_col TIMESTAMP

);

insert into table1 values ('name1' , 1, TO_TIMESTAMP('01-01-2024 08:00 PM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('01-01-2024 07:00 PM', 'MM-DD-YYYY HH:MI AM'));

insert into table1 values ('name2' , 2, TO_TIMESTAMP('02-01-2024 09:00 PM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('02-01-2024 08:30 PM', 'MM-DD-YYYY HH:MI AM'));

insert into table1 values ('name3' , 3, TO_TIMESTAMP('03-01-2024 10:00 PM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('03-01-2024 09:20 PM', 'MM-DD-YYYY HH:MI AM'));

insert into table1 values ('name11', 11, TO_TIMESTAMP('01-02-2024 08:00 AM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('01-02-2024 06:52 AM', 'MM-DD-YYYY HH:MI AM'));

insert into table1 values ('name12', 12, TO_TIMESTAMP('02-02-2024 08:30 AM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('02-02-2024 08:22 AM', 'MM-DD-YYYY HH:MI AM'));

insert into table1 values ('name13', 13, TO_TIMESTAMP('03-02-2024 08:45 AM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('03-02-2024 08:33 AM', 'MM-DD-YYYY HH:MI AM'));

insert into table1 values ('name14', 14, TO_TIMESTAMP('04-02-2024 08:55 AM', 'MM-DD-YYYY HH:MI AM'), TO_TIMESTAMP('04-02-2024 06:13 AM', 'MM-DD-YYYY HH:MI AM'));

create or replace view view1 as

select name_col

    , number_col

    , (timestamp1_col - timestamp2_col) as timestamp_diff

    , TO_TIMESTAMP('14.01.2023 8:00 PM', 'DD.MM.YYYY HH:MI AM') - TO_TIMESTAMP('16.02.2023 10:15 PM', 'DD.MM.YYYY HH:MI AM') AS timestamp_diff2

from table1
;

2) add the db and then go to the view, hit the error

joaquinjsb commented 1 week ago

you did just add a "timezone" type, the issue is reproducible with TIMESTAMP(6) WITH LOCAL TIME ZONE, for example this ddl:


create table example_table
(
    property1  NUMBER,
    property2  timestamp(6),
    event_date TIMESTAMP(6) WITH LOCAL TIME ZONE not null
);

i successfully managed to reproduce it, the result I get is this:

image

darksciencebase commented 1 week ago

if it's easy to smash https://github.com/metabase/metabase/issues/44109 in the same go, we should

joaquinjsb commented 1 week ago

if it's easy to smash #44109 in the same go, we should

I do also have the clob issue, so probably it's related to the whole oracle implementation

joaquinjsb commented 1 week ago

and if you guys are squashing oracle bugs, do also check this one https://github.com/metabase/metabase/issues/42338

github-actions[bot] commented 20 hours ago

🚀 This should also be released by v0.50.8