dosubot[bot] commented on issue #34718:
URL: https://github.com/apache/superset/issues/34718#issuecomment-3192059699

   <!-- Answer -->
   The difference comes from how Superset extracts column type metadata for 
each dataset type. For physical datasets (direct tables/views), Superset uses 
SQLAlchemy's inspector to fetch column types straight from the database schema, 
which is usually explicit and reliable. For virtual datasets (defined by a SQL 
query), Superset runs your query with a limit (often 1 row) and tries to infer 
column types from the result set using the database driver's cursor 
description. This process can be less precise or even ambiguous, especially for 
types like float/double, because not all drivers provide detailed type info for 
query results.
   
   As a result, the same column might be recognized as numeric (with the # 
icon) in a physical dataset but not in a virtual one, even if the underlying 
data is identical. All chart controls and UI icons depend on this metadata 
pipeline, so these discrepancies are expected in some cases—especially with 
edge-case types and certain drivers. You can see this logic in the code for 
[SqlaTable.external_metadata](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/connectors/sqla/models.py)
 and the utility functions for [fetching physical vs virtual 
metadata](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/connectors/sqla/utils.py).
   
   
   <!-- Dosu Comment Footer -->
   *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*
   
   ---
   <sup>How did I do? 
[Good](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=great_response)
 | 
[Irrelevant](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=irrelevant_answer)
 | 
[Incorrect](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=incorrect_sources)
 | 
[Verbose](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=too_verbose)
 | 
[Hallucination](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=hallucination)
 | [Report 
🐛](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=bug_report)
 | 
[Other](https://app.dosu.dev/response-feedback/7b0f89c4-f69b-44c9-a446-a0fee0f73fb3?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=githu
 b)&nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/34718)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to