Frank Chen created CALCITE-7808:
-----------------------------------
Summary: Cache recently created and decorated SQL types
Key: CALCITE-7808
URL: https://issues.apache.org/jira/browse/CALCITE-7808
Project: Calcite
Issue Type: Sub-task
Reporter: Frank Chen
RelDataTypeFactoryImpl canonicalizes types through a global weak interner, but
canonicalization accepts an already constructed type. It therefore prevents
equivalent types from being retained without preventing temporary BasicSqlType,
charset wrapper, and type-digest allocation.
Add bounded front-cache entries per SqlTypeName for the most recently created
base type and decorated type. Cache misses retain the existing construction and
canonicalization paths, and the global weak interner remains authoritative.
The isolated Druid benchmark reduced allocation by 45.74% at 100,000 string
literals and 44.70% at 1,000,000 string literals for the measured high-locality
workload.
Pull request: [PR #5282|https://github.com/apache/calcite/pull/5282]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)