metabase / metabase/metabase

Source data types are not respected.

Open
#51,917 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Priority:P2 Type:Documentation
Dominant language
Clojure
Stars
49.3k
Forks
6.8k
Avg merge
1d 13h
Merged PRs (30d)
653

Description

Describe the bug

Field/semantic types do not respect source data types. The columns in many of my tables get automatically -and without warning- casted to the wrong types, causing all sorts of issues.

To Reproduce

I don't know how you could reproduce this, but I go to tables in my database and click on 'Fields in this table' to display this, which shows the mismatch between my source table and Metabase:

Image

Expected behavior

Field/semantic types should be the same as the data types by default.

Logs

Does not apply.

Information about your Metabase installation
{
  "browser-info": {
    "language": "de-DE",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "metabase-info": {
    "databases": [
      "snowflake"
    ],
    "run-mode": "prod",
    "plan-alias": "",
    "version": {
      "date": "2024-12-04",
      "tag": "v0.52.1",
      "hash": "5bc320b"
    },
    "settings": {
      "report-timezone": "UTC"
    },
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "14.12"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.7.3"
      }
    }
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "17.0.13+11-LTS",
    "java.vendor": "Amazon.com Inc.",
    "java.vendor.url": "https://aws.amazon.com/corretto/",
    "java.version": "17.0.13",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "17.0.13+11-LTS",
    "os.name": "Linux",
    "os.version": "5.10.228-219.884.amzn2.x86_64",
    "user.language": "en",
    "user.timezone": "UTC"
  }
}
Severity

No scale given, so 'annoying', 'blocking' users who don't know how to manipulate columns to cast them back and 'blocking' productivity.

Additional context

By the way, referring to something with two different names makes everything harder. Here, you say the following:

This makes one look for field types in the docs and the app, since you declare that is your nomenclature. But then you use semantic in some places and don't qualify type at all in others:

And back to field:

It would be nice for the documentation and UI to be consistent.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report identifies the Tables view's “Fields in this table” entry point and a Snowflake source, but names no implementation files or tests. Start by reproducing the displayed mismatch and tracing how source types become field or semantic types. Done means source and displayed types agree by default, with the terminology used consistently in the UI and documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure, postgresql
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.