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)

Reply via email to