Metabase shows issues syncing tables from RisingWave in the Browse Data section, while creating grid maps displays arrows without the background map

I am using Metabase to create some map visualizations based on tables in RisingWave, a PostgreSQL-compatible database. First, I have a table in RisingWave, which is not shown in Metabase when I go to the Browse Data section in Metabase under the name of my database though I can query the table and create visulizations too when I go to the SQL Query section in Metabase. It continuously shows "syncing tables" at the right bottom.

Second, when I create a grid map based on the table, it does show the arrows at the locations but, does not show the map in the background.

  1. send the logs when you do the sync
  2. send the browser developer tools console or network log when you see the map

I have the same sync problem, here are some info:

Diagnostic info

{
  "browser-info": {
    "language": "en-US",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.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.22+7-LTS",
    "java.vendor": "Red Hat, Inc.",
    "java.vendor.url": "https://www.redhat.com/",
    "java.version": "11.0.22",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.22+7-LTS",
    "os.name": "Linux",
    "os.version": "6.6.8-1.el7.elrepo.x86_64",
    "user.language": "en",
    "user.timezone": "Asia/Shanghai"
  },
  "metabase-info": {
    "databases": [],
    "hosting-env": "unknown",
    "application-database": "h2",
    "application-database-details": {
      "database": {
        "name": "H2",
        "version": "2.1.214 (2022-06-13)"
      },
      "jdbc-driver": {
        "name": "H2 JDBC Driver",
        "version": "2.1.214 (2022-06-13)"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2024-02-12",
      "tag": "v0.48.6",
      "hash": "b8818f9"
    },
    "settings": {
      "report-timezone": null
    }
  }
}

Logs

[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:58+08:00 INFO metabase.driver.impl Initializing driver :postgres...
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:58+08:00 ERROR metabase.driver.util Failed to connect to Database
org.postgresql.util.PSQLException: The server does not support SSL.
	at org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:610)
	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:191)
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:258)
	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:263)
	at org.postgresql.Driver.makeConnection(Driver.java:443)
	at org.postgresql.Driver.connect(Driver.java:297)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)
	at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
	at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
	at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
	at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
	at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
	at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
	at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
	at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
	at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
	at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
	at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:326)
	at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:323)
	at metabase.driver.sql_jdbc.connection$can_connect_QMARK_$fn__49972.invoke(connection.clj:335)
	at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection$fn__49954.invoke(connection.clj:311)
	at metabase.util.ssh$do_with_ssh_tunnel.invokeStatic(ssh.clj:162)
	at metabase.util.ssh$do_with_ssh_tunnel.invoke(ssh.clj:151)
	at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invokeStatic(connection.clj:309)
	at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invoke(connection.clj:305)
	at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:334)
	at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:330)
	at metabase.driver.sql_jdbc$fn__105596.invokeStatic(sql_jdbc.clj:53)
	at metabase.driver.sql_jdbc$fn__105596.invoke(sql_jdbc.clj:51)
	at clojure.lang.MultiFn.invoke(MultiFn.java:234)
	at metabase.driver.util$can_connect_with_details_QMARK_$fn__56665.invoke(util.clj:147)
	at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
	at clojure.lang.AFn.call(AFn.java:18)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.task.sync-databases Scheduling sync/analyze for database 33: trigger: metabase.task.sync-and-analyze.trigger.33
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.task.sync-databases Scheduling field-values for database 33: trigger: metabase.task.update-field-values.trigger.33
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.audit-log 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.driver-notifications 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.last-login 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.persisted-info 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.recent-views 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.revision 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.schema 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.sync-database 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.events Loading events namespace: metabase.events.view-log 👂
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.sync.util STARTING: Sync postgres Database 33 'RisingWave'
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 DEBUG metabase.server.middleware.log POST /api/database 200 536.2 ms (19 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued); postgres DB 33 connections: 0/0 (0 threads blocked)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 WARN metabase.sync.util Error in sync step Sync postgres Database 33 'RisingWave'
org.postgresql.util.PSQLException: ERROR: Failed to prepare the statement
Caused by these errors (recent errors listed first):
  1: Failed to bind expression: pg_catalog.has_table_privilege(current_user, '"' || t.schemaname || '"' || '.' || '"' || t.objectname || '"', 'UPDATE')
  2: Feature is not yet implemented: unsupported function: "has_table_privilege"
Tracking issue: https://github.com/risingwavelabs/risingwave/issues/112
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:368)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:498)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:415)
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190)
	at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:134)
	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1471)
	at clojure.java.jdbc$execute_query_with_params.invokeStatic(jdbc.clj:1090)
	at clojure.java.jdbc$execute_query_with_params.invoke(jdbc.clj:1084)
	at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1113)
	at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
	at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
	at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
	at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
	at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
	at metabase.driver.postgres$fn__82809.invokeStatic(postgres.clj:859)
	at metabase.driver.postgres$fn__82809.invoke(postgres.clj:854)
	at clojure.lang.MultiFn.invoke(MultiFn.java:234)
	at metabase.driver.sql_jdbc.sync.describe_database$schema_PLUS_table_with_select_privileges.invokeStatic(describe_database.clj:125)
	at metabase.driver.sql_jdbc.sync.describe_database$schema_PLUS_table_with_select_privileges.invoke(describe_database.clj:123)
	at metabase.driver.sql_jdbc.sync.describe_database$have_select_privilege_fn.invokeStatic(describe_database.clj:143)
	at metabase.driver.sql_jdbc.sync.describe_database$have_select_privilege_fn.invoke(describe_database.clj:131)
	at metabase.driver.sql_jdbc.sync.describe_database$fast_active_tables.invokeStatic(describe_database.clj:171)
	at metabase.driver.sql_jdbc.sync.describe_database$fast_active_tables.doInvoke(describe_database.clj:160)
	at clojure.lang.RestFn.invoke(RestFn.java:490)
	at metabase.driver.sql_jdbc.sync.describe_database$fn__79776.invokeStatic(describe_database.clj:179)
	at metabase.driver.sql_jdbc.sync.describe_database$fn__79776.invoke(describe_database.clj:177)
	at clojure.lang.MultiFn.invoke(MultiFn.java:244)
	at metabase.driver.sql_jdbc.sync.describe_database$describe_database$fn__79795.invoke(describe_database.clj:231)
	at metabase.driver.sql_jdbc.execute$fn__77633$fn__77634.invoke(execute.clj:388)
	at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invokeStatic(execute.clj:334)
	at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invoke(execute.clj:317)
	at metabase.driver.sql_jdbc.execute$fn__77633.invokeStatic(execute.clj:382)
	at metabase.driver.sql_jdbc.execute$fn__77633.invoke(execute.clj:380)
	at clojure.lang.MultiFn.invoke(MultiFn.java:244)
	at metabase.driver.sql_jdbc.sync.describe_database$describe_database.invokeStatic(describe_database.clj:213)
	at metabase.driver.sql_jdbc.sync.describe_database$describe_database.invoke(describe_database.clj:208)
	at metabase.driver.sql_jdbc$fn__105614.invokeStatic(sql_jdbc.clj:94)
	at metabase.driver.sql_jdbc$fn__105614.invoke(sql_jdbc.clj:92)
	at clojure.lang.MultiFn.invoke(MultiFn.java:234)
	at metabase.sync.fetch_metadata$db_metadata.invokeStatic(fetch_metadata.clj:15)
	at metabase.sync.fetch_metadata$db_metadata.invoke(fetch_metadata.clj:12)
	at metabase.sync.sync_metadata$sync_db_metadata_BANG_.invokeStatic(sync_metadata.clj:61)
	at metabase.sync.sync_metadata$sync_db_metadata_BANG_.invoke(sync_metadata.clj:58)
	at metabase.sync$sync_database_BANG_$fn__80802.invoke(sync.clj:52)
	at metabase.sync.util$do_with_error_handling.invokeStatic(util.clj:191)
	at metabase.sync.util$do_with_error_handling.invoke(util.clj:184)
	at clojure.core$partial$fn__5910.invoke(core.clj:2647)
	at metabase.driver$fn__48768.invokeStatic(driver.clj:725)
	at metabase.driver$fn__48768.invoke(driver.clj:725)
	at clojure.lang.MultiFn.invoke(MultiFn.java:239)
	at metabase.sync.util$sync_in_context$fn__56950.invoke(util.clj:167)
	at metabase.sync.util$with_db_logging_disabled$fn__56947.invoke(util.clj:159)
	at metabase.sync.util$with_start_and_finish_logging_STAR_.invokeStatic(util.clj:132)
	at metabase.sync.util$with_start_and_finish_logging_STAR_.invoke(util.clj:126)
	at metabase.sync.util$with_start_and_finish_logging$fn__56934.invoke(util.clj:144)
	at metabase.sync.util$with_sync_events$fn__56929.invoke(util.clj:118)
	at metabase.sync.util$with_duplicate_ops_prevented$fn__56916.invoke(util.clj:90)
	at metabase.sync.util$do_sync_operation.invokeStatic(util.clj:216)
	at metabase.sync.util$do_sync_operation.invoke(util.clj:210)
	at metabase.sync$sync_database_BANG_.invokeStatic(sync.clj:51)
	at metabase.sync$sync_database_BANG_.invoke(sync.clj:37)
	at metabase.sync$sync_database_BANG_.invokeStatic(sync.clj:46)
	at metabase.sync$sync_database_BANG_.invoke(sync.clj:37)
	at metabase.events.sync_database$publish_event_BANG__primary_method_metabase_events_sync_database_event$fn__103071.invoke(sync_database.clj:24)
	at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
	at clojure.lang.AFn.call(AFn.java:18)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 INFO metabase.sync.util FINISHED: Sync postgres Database 33 'RisingWave' (78.8 ms)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 24.1 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:57:59+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 11.3 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:01+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 10.5 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:01+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 9.6 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:04+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 10.4 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:04+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 9.3 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:07+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 10.1 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:07+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 9.8 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (3 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:10+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 10.0 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (6 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:10+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 9.3 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (6 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)
[9b7b615c-9dbf-4090-99db-3d833cfb0703] 2024-02-17T13:58:13+08:00 DEBUG metabase.server.middleware.log GET /api/database 200 9.5 ms (3 DB calls) App DB connections: 1/7 Jetty threads: 5/50 (6 idle, 0 queued) (46 total active threads) Queries in flight: 0 (0 queued)

Thanks!

as you can see, if a database is postgres compatible it doesn't mean that it's postgres...

the fact is that we're using a postgres native function "has_table_privileges" which is making things break

check:
1: Failed to bind expression: pg_catalog.has_table_privilege(current_user, '"' || t.schemaname || '"' || '.' || '"' || t.objectname || '"', 'UPDATE')
2: Feature is not yet implemented: unsupported function: "has_table_privilege"