metabase-es-sql-driver icon indicating copy to clipboard operation
metabase-es-sql-driver copied to clipboard

timestamps not supported

Open apinstein opened this issue 4 years ago • 1 comments

select
    timestamp::text
from kibana_sample_data_flights

Works, but

select
    timestamp
from kibana_sample_data_flights

Fails (without the ::text)... Error reducing result rows:

2020-12-25 10:59:41,237 ERROR middleware.catch-exceptions :: Error processing query: null
{:database_id 2,
 :started_at #t "2020-12-25T10:59:40.789654-05:00[America/New_York]",
 :via
 [{:status :failed,
   :class clojure.lang.ExceptionInfo,
   :error "Error reducing result rows",
   :stacktrace
   ["--> query_processor.context.default$default_reducef$fn__36402.invoke(default.clj:61)"
    "query_processor.context.default$default_reducef.invokeStatic(default.clj:58)"
    "query_processor.context.default$default_reducef.invoke(default.clj:49)"
    "query_processor.context$reducef.invokeStatic(context.clj:69)"
    "query_processor.context$reducef.invoke(context.clj:62)"
    "query_processor.context.default$default_runf$respond_STAR___36406.invoke(default.clj:70)"
    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:394)"
    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:376)"
    "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:385)"
    "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:376)"
    "driver.sql_jdbc$fn__78125.invokeStatic(sql_jdbc.clj:49)"
    "driver.sql_jdbc$fn__78125.invoke(sql_jdbc.clj:47)"
    "query_processor.context$executef.invokeStatic(context.clj:59)"
    "query_processor.context$executef.invoke(context.clj:48)"
    "query_processor.context.default$default_runf.invokeStatic(default.clj:69)"
    "query_processor.context.default$default_runf.invoke(default.clj:67)"
    "query_processor.context$runf.invokeStatic(context.clj:45)"
    "query_processor.context$runf.invoke(context.clj:39)"
    "query_processor.reducible$pivot.invokeStatic(reducible.clj:34)"
    "query_processor.reducible$pivot.invoke(reducible.clj:31)"
    "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__44124.invoke(mbql_to_native.clj:26)"
    "query_processor.middleware.check_features$check_features$fn__43400.invoke(check_features.clj:42)"
    "query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__44289.invoke(optimize_datetime_filters.clj:133)"
    "query_processor.middleware.auto_parse_filter_values$auto_parse_filter_values$fn__42201.invoke(auto_parse_filter_values.clj:44)"
    "query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__45855.invoke(wrap_value_literals.clj:149)"
    "query_processor.middleware.annotate$add_column_info$fn__41956.invoke(annotate.clj:575)"
    "query_processor.middleware.permissions$check_query_permissions$fn__43275.invoke(permissions.clj:70)"
    "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__44807.invoke(pre_alias_aggregations.clj:40)"
    "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__43473.invoke(cumulative_aggregations.clj:61)"
    "query_processor.middleware.resolve_joined_fields$resolve_joined_fields$fn__45044.invoke(resolve_joined_fields.clj:36)"
    "query_processor.middleware.resolve_joins$resolve_joins$fn__45363.invoke(resolve_joins.clj:183)"
    "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__37681.invoke(add_implicit_joins.clj:254)"
    "query_processor.middleware.large_int_id$convert_id_to_string$fn__44085.invoke(large_int_id.clj:44)"
    "query_processor.middleware.limit$limit$fn__44110.invoke(limit.clj:38)"
    "query_processor.middleware.format_rows$format_rows$fn__44065.invoke(format_rows.clj:75)"
    "query_processor.middleware.desugar$desugar$fn__43539.invoke(desugar.clj:22)"
    "query_processor.middleware.binning$update_binning_strategy$fn__42560.invoke(binning.clj:229)"
    "query_processor.middleware.resolve_fields$resolve_fields$fn__43077.invoke(resolve_fields.clj:24)"
    "query_processor.middleware.add_dimension_projections$add_remapping$fn__37225.invoke(add_dimension_projections.clj:316)"
    "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__37432.invoke(add_implicit_clauses.clj:141)"
    "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__37830.invoke(add_source_metadata.clj:105)"
    "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__45004.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)"
    "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__42148.invoke(auto_bucket_datetimes.clj:140)"
    "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__43124.invoke(resolve_source_table.clj:46)"
    "query_processor.middleware.parameters$substitute_parameters$fn__44789.invoke(parameters.clj:114)"
    "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__43176.invoke(resolve_referenced.clj:80)"
    "query_processor.middleware.expand_macros$expand_macros$fn__43795.invoke(expand_macros.clj:158)"
    "query_processor.middleware.add_timezone_info$add_timezone_info$fn__37861.invoke(add_timezone_info.clj:15)"
    "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__45725.invoke(splice_params_in_response.clj:32)"
    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__45015$fn__45019.invoke(resolve_database_and_driver.clj:33)"
    "driver$do_with_driver.invokeStatic(driver.clj:61)"
    "driver$do_with_driver.invoke(driver.clj:57)"
    "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__45015.invoke(resolve_database_and_driver.clj:27)"
    "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__44013.invoke(fetch_source_query.clj:267)"
    "query_processor.middleware.store$initialize_store$fn__45734$fn__45735.invoke(store.clj:11)"
    "query_processor.store$do_with_store.invokeStatic(store.clj:46)"
    "query_processor.store$do_with_store.invoke(store.clj:40)"
    "query_processor.middleware.store$initialize_store$fn__45734.invoke(store.clj:10)"
    "query_processor.middleware.cache$maybe_return_cached_results$fn__43053.invoke(cache.clj:214)"
    "query_processor.middleware.validate$validate_query$fn__45743.invoke(validate.clj:10)"
    "query_processor.middleware.normalize_query$normalize$fn__44137.invoke(normalize_query.clj:22)"
    "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__37699.invoke(add_rows_truncated.clj:36)"
    "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__45710.invoke(results_metadata.clj:147)"
    "query_processor.middleware.constraints$add_default_userland_constraints$fn__43416.invoke(constraints.clj:42)"
    "query_processor.middleware.process_userland_query$process_userland_query$fn__44878.invoke(process_userland_query.clj:136)"
    "query_processor.middleware.catch_exceptions$catch_exceptions$fn__43359.invoke(catch_exceptions.clj:174)"
    "query_processor.reducible$async_qp$qp_STAR___36488$thunk__36489.invoke(reducible.clj:103)"
    "query_processor.reducible$async_qp$qp_STAR___36488.invoke(reducible.clj:109)"
    "query_processor.reducible$sync_qp$qp_STAR___36497$fn__36500.invoke(reducible.clj:135)"
    "query_processor.reducible$sync_qp$qp_STAR___36497.invoke(reducible.clj:134)"
    "query_processor$process_userland_query.invokeStatic(query_processor.clj:237)"
    "query_processor$process_userland_query.doInvoke(query_processor.clj:233)"
    "query_processor$fn__45901$process_query_and_save_execution_BANG___45910$fn__45913.invoke(query_processor.clj:249)"
    "query_processor$fn__45901$process_query_and_save_execution_BANG___45910.invoke(query_processor.clj:241)"
    "query_processor$fn__45945$process_query_and_save_with_max_results_constraints_BANG___45954$fn__45957.invoke(query_processor.clj:261)"
    "query_processor$fn__45945$process_query_and_save_with_max_results_constraints_BANG___45954.invoke(query_processor.clj:254)"
    "api.dataset$fn__52612$fn__52615.invoke(dataset.clj:59)"
    "query_processor.streaming$streaming_response_STAR_$fn__52593$fn__52594.invoke(streaming.clj:73)"
    "query_processor.streaming$streaming_response_STAR_$fn__52593.invoke(streaming.clj:72)"
    "async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)"
    "async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)"
    "async.streaming_response$do_f_async$fn__24637.invoke(streaming_response.clj:85)"],
   :error_type :qp,
   :ex-data {:type :qp}}],
 :state nil,
 :error_type :qp,
 :json_query
 {:type "native",
  :native {:query "select\n    timestamp\nfrom kibana_sample_data_flights", :template-tags {}},
  :database 2,
  :parameters [],
  :middleware {:js-int-to-string? true, :add-default-userland-constraints? true}},
 :status :failed,
 :class java.sql.SQLFeatureNotSupportedException,
 :stacktrace
 ["org.elasticsearch.xpack.sql.jdbc.TypeConverter.asLocalDateTime(TypeConverter.java:583)"
  "org.elasticsearch.xpack.sql.jdbc.TypeConverter.convert(TypeConverter.java:195)"
  "org.elasticsearch.xpack.sql.jdbc.JdbcResultSet.convert(JdbcResultSet.java:434)"
  "org.elasticsearch.xpack.sql.jdbc.JdbcResultSet.getObject(JdbcResultSet.java:421)"
  "com.mchange.v2.c3p0.impl.NewProxyResultSet.getObject(NewProxyResultSet.java:217)"
  "--> driver.sql_jdbc.execute$get_object_of_class_thunk$fn__76626.invoke(execute.clj:279)"
  "driver.sql_jdbc.execute$row_thunk$row_thunk_STAR___76684.invoke(execute.clj:347)"
  "query_processor.reducible$reducible_rows$reify__36504.reduce(reducible.clj:160)"
  "query_processor.context.default$default_reducef$fn__36402.invoke(default.clj:59)"
  "query_processor.context.default$default_reducef.invokeStatic(default.clj:58)"
  "query_processor.context.default$default_reducef.invoke(default.clj:49)"
  "query_processor.context$reducef.invokeStatic(context.clj:69)"
  "query_processor.context$reducef.invoke(context.clj:62)"
  "query_processor.context.default$default_runf$respond_STAR___36406.invoke(default.clj:70)"
  "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:394)"
  "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:376)"
  "driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:385)"
  "driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:376)"
  "driver.sql_jdbc$fn__78125.invokeStatic(sql_jdbc.clj:49)"
  "driver.sql_jdbc$fn__78125.invoke(sql_jdbc.clj:47)"
  "query_processor.context$executef.invokeStatic(context.clj:59)"
  "query_processor.context$executef.invoke(context.clj:48)"
  "query_processor.context.default$default_runf.invokeStatic(default.clj:69)"
  "query_processor.context.default$default_runf.invoke(default.clj:67)"
  "query_processor.context$runf.invokeStatic(context.clj:45)"
  "query_processor.context$runf.invoke(context.clj:39)"
  "query_processor.reducible$pivot.invokeStatic(reducible.clj:34)"
  "query_processor.reducible$pivot.invoke(reducible.clj:31)"
  "query_processor.middleware.mbql_to_native$mbql__GT_native$fn__44124.invoke(mbql_to_native.clj:26)"
  "query_processor.middleware.check_features$check_features$fn__43400.invoke(check_features.clj:42)"
  "query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__44289.invoke(optimize_datetime_filters.clj:133)"
  "query_processor.middleware.auto_parse_filter_values$auto_parse_filter_values$fn__42201.invoke(auto_parse_filter_values.clj:44)"
  "query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__45855.invoke(wrap_value_literals.clj:149)"
  "query_processor.middleware.annotate$add_column_info$fn__41956.invoke(annotate.clj:575)"
  "query_processor.middleware.permissions$check_query_permissions$fn__43275.invoke(permissions.clj:70)"
  "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__44807.invoke(pre_alias_aggregations.clj:40)"
  "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__43473.invoke(cumulative_aggregations.clj:61)"
  "query_processor.middleware.resolve_joined_fields$resolve_joined_fields$fn__45044.invoke(resolve_joined_fields.clj:36)"
  "query_processor.middleware.resolve_joins$resolve_joins$fn__45363.invoke(resolve_joins.clj:183)"
  "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__37681.invoke(add_implicit_joins.clj:254)"
  "query_processor.middleware.large_int_id$convert_id_to_string$fn__44085.invoke(large_int_id.clj:44)"
  "query_processor.middleware.limit$limit$fn__44110.invoke(limit.clj:38)"
  "query_processor.middleware.format_rows$format_rows$fn__44065.invoke(format_rows.clj:75)"
  "query_processor.middleware.desugar$desugar$fn__43539.invoke(desugar.clj:22)"
  "query_processor.middleware.binning$update_binning_strategy$fn__42560.invoke(binning.clj:229)"
  "query_processor.middleware.resolve_fields$resolve_fields$fn__43077.invoke(resolve_fields.clj:24)"
  "query_processor.middleware.add_dimension_projections$add_remapping$fn__37225.invoke(add_dimension_projections.clj:316)"
  "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__37432.invoke(add_implicit_clauses.clj:141)"
  "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__37830.invoke(add_source_metadata.clj:105)"
  "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__45004.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)"
  "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__42148.invoke(auto_bucket_datetimes.clj:140)"
  "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__43124.invoke(resolve_source_table.clj:46)"
  "query_processor.middleware.parameters$substitute_parameters$fn__44789.invoke(parameters.clj:114)"
  "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__43176.invoke(resolve_referenced.clj:80)"
  "query_processor.middleware.expand_macros$expand_macros$fn__43795.invoke(expand_macros.clj:158)"
  "query_processor.middleware.add_timezone_info$add_timezone_info$fn__37861.invoke(add_timezone_info.clj:15)"
  "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__45725.invoke(splice_params_in_response.clj:32)"
  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__45015$fn__45019.invoke(resolve_database_and_driver.clj:33)"
  "driver$do_with_driver.invokeStatic(driver.clj:61)"
  "driver$do_with_driver.invoke(driver.clj:57)"
  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__45015.invoke(resolve_database_and_driver.clj:27)"
  "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__44013.invoke(fetch_source_query.clj:267)"
  "query_processor.middleware.store$initialize_store$fn__45734$fn__45735.invoke(store.clj:11)"
  "query_processor.store$do_with_store.invokeStatic(store.clj:46)"
  "query_processor.store$do_with_store.invoke(store.clj:40)"
  "query_processor.middleware.store$initialize_store$fn__45734.invoke(store.clj:10)"
  "query_processor.middleware.cache$maybe_return_cached_results$fn__43053.invoke(cache.clj:214)"
  "query_processor.middleware.validate$validate_query$fn__45743.invoke(validate.clj:10)"
  "query_processor.middleware.normalize_query$normalize$fn__44137.invoke(normalize_query.clj:22)"
  "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__37699.invoke(add_rows_truncated.clj:36)"
  "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__45710.invoke(results_metadata.clj:147)"
  "query_processor.middleware.constraints$add_default_userland_constraints$fn__43416.invoke(constraints.clj:42)"
  "query_processor.middleware.process_userland_query$process_userland_query$fn__44878.invoke(process_userland_query.clj:136)"
  "query_processor.middleware.catch_exceptions$catch_exceptions$fn__43359.invoke(catch_exceptions.clj:174)"
  "query_processor.reducible$async_qp$qp_STAR___36488$thunk__36489.invoke(reducible.clj:103)"
  "query_processor.reducible$async_qp$qp_STAR___36488.invoke(reducible.clj:109)"
  "query_processor.reducible$sync_qp$qp_STAR___36497$fn__36500.invoke(reducible.clj:135)"
  "query_processor.reducible$sync_qp$qp_STAR___36497.invoke(reducible.clj:134)"
  "query_processor$process_userland_query.invokeStatic(query_processor.clj:237)"
  "query_processor$process_userland_query.doInvoke(query_processor.clj:233)"
  "query_processor$fn__45901$process_query_and_save_execution_BANG___45910$fn__45913.invoke(query_processor.clj:249)"
  "query_processor$fn__45901$process_query_and_save_execution_BANG___45910.invoke(query_processor.clj:241)"
  "query_processor$fn__45945$process_query_and_save_with_max_results_constraints_BANG___45954$fn__45957.invoke(query_processor.clj:261)"
  "query_processor$fn__45945$process_query_and_save_with_max_results_constraints_BANG___45954.invoke(query_processor.clj:254)"
  "api.dataset$fn__52612$fn__52615.invoke(dataset.clj:59)"
  "query_processor.streaming$streaming_response_STAR_$fn__52593$fn__52594.invoke(streaming.clj:73)"
  "query_processor.streaming$streaming_response_STAR_$fn__52593.invoke(streaming.clj:72)"
  "async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)"
  "async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)"
  "async.streaming_response$do_f_async$fn__24637.invoke(streaming_response.clj:85)"],
 :context :ad-hoc,
 :error nil,
 :row_count 0,
 :running_time 0,
 :data {:rows [], :cols []}}

apinstein avatar Dec 25 '20 16:12 apinstein

I tried adding support for datetime directly which didn't help

diff --git a/src/metabase/driver/elasticsearch.clj b/src/metabase/driver/elasticsearch.clj
index cd6e198..4e960a3 100644
--- a/src/metabase/driver/elasticsearch.clj
+++ b/src/metabase/driver/elasticsearch.clj
@@ -73,6 +73,7 @@
     :text                 :type/Text
     :binary               :type/*
     :date                 :type/DateTime
+    :datetime             :type/DateTime
     :ip                   :type/Text
     :object               :type/Dictionary
     :nested               :type/Dictionary} database-type))

apinstein avatar Dec 25 '20 16:12 apinstein