Skip to content

Implement metadata identifier case handling and raw-name persistence #38391

@menghaoranss

Description

@menghaoranss

Feature Request

Is your feature request related to a problem?

Metadata names are still normalized to lowercase in several metadata loading and persistence paths. This can lose raw schema, table, and column names, break quoted and unquoted identifier lookups, and make repository metadata inconsistent with the physical database.

Describe the feature you would like.

Implement metadata identifier case handling so that ShardingSphere preserves raw metadata names, resolves identifiers according to database-specific rules, and keeps in-memory metadata and repository storage aligned.

  • Add identifier case abstractions, identifier context, and identifier index support
  • Add unit tests for rule matching, normalized lookup, and ambiguity handling
  • Add identifier case rule provider SPI and resolver
  • Add configuration for metadata identifier case handling
  • Add provider implementations for PostgreSQL, openGauss, Oracle, and MySQL
  • Add identifier-aware lookup APIs to ShardingSphereDatabase
  • Add identifier-aware lookup APIs to ShardingSphereSchema
  • Add identifier-aware lookup APIs to ShardingSphereTable
  • Resolve and cache shared identifier rules during database initialization
  • Refresh rules and rebuild identifier indexes on storage unit or props changes
  • Supports loading single tables with case-insensitive names
  • Migrate metadata callers from String lookup to IdentifierValue lookup
  • Switch repository writes to raw metadata names
  • Remove remaining forced lowercase handling in metadata paths

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions