Error when navigating back from details page

Hi,

I’ve marked a field in a table as its entity key and clicking on it in a table brings me to the details page. However, if I’m clicking on the arrow button to return from the details page back to the table of records it throws an error message:

ERROR: operator does not exist: character varying = integer

My database is PostgreSQL and the field is typed as text. I wonder if only numeric columns can/shall be used as entity keys or if I’m doing something wrong here.

Anyone encountered this issue before or has some suggestion for me?

Cheers!

Hi @smu
Please post “Diagnostic Info” from Admin > Troubleshooting.
That’s not an arrow button to go back to the table - it’s arrows (on both sides) to cycle thru previous/next entity, but it expects the entity to be numeric.

Hi @flamber,

Thank you for pointing out that this is not a navigation button. Now that you mentioned this I noticed its counterpart on the opposite side of the page. Since I was running my browser in full screen I didn’t notice that unitl now. However, I still assume it shouldn’t create an error if the type is not numeric. Something I should create bug report for? Anyhow, here’s the 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/88.0.4324.150 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "Cp1252",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.6+10",
    "java.vendor": "AdoptOpenJDK",
    "java.vendor.url": "https://adoptopenjdk.net/",
    "java.version": "11.0.6",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.6+10",
    "os.name": "Windows 10",
    "os.version": "10.0",
    "user.language": "en",
    "user.timezone": "Europe/Berlin"
  },
  "metabase-info": {
    "databases": [
      "h2",
      "postgres"
    ],
    "hosting-env": "unknown",
    "application-database": "h2",
    "application-database-details": {
      "database": {
        "name": "H2",
        "version": "1.4.197 (2018-03-18)"
      },
      "jdbc-driver": {
        "name": "H2 JDBC Driver",
        "version": "1.4.197 (2018-03-18)"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2021-03-03",
      "tag": "v0.38.1",
      "branch": "release-x.38.x",
      "hash": "79ef63a"
    },
    "settings": {
      "report-timezone": "Europe/Berlin"
    }
  }
}

@smu The best thing that would be to hide the arrows, since Metabase does not know what the “next” (or “previous”) object ID is non-numeric (string, date, UUID, …).
So the problem you’re seeing, was caused by another fix:
https://github.com/metabase/metabase/issues/13250
Which itself was caused by another fix:
https://github.com/metabase/metabase/issues/5816
And we’re likely now breaking people who use dates for IDs:
https://github.com/metabase/metabase/issues/7599

@flamber I agree for non enumerable types but dates should be possible to enumerate, shouldn’t they? Thank you for your assistance with this. There is currently no option for myself to hide the arrows, right?

@smu There’s no way of hiding those arrows unless you build your own version of Metabase.