I checked a few other RelMdXxx classes, and. they have private constructors 
too. Which makes sense, because you don’t extend metadata providers by 
subclassing. You just define your own provider and add it to the chain.

RelMdColumnUniqueness has

  public static final RelMetadataProvider SOURCE =
      ReflectiveRelMetadataProvider.reflectiveSource(
          new RelMdColumnUniqueness(),
          BuiltInMetadata.ColumnUniqueness.Handler.class);

You could define a similar SOURCE in your class that chains 
RelMdColumnUniqueness handlers with your own.

Julian


> On Aug 14, 2023, at 9:32 AM, Nick Riasanovsky <[email protected]> wrote:
> 
> Hi everyone,
> 
> I'm trying to understand why RelMdColumnUniqueness. I have interest in
> subclassing RelMdColumnUniqueness in my project and am unable to do so
> because the constructor is private. Other metadata queries don't appear to
> have private constructors, such as RelMdRowCount. If anyone has any
> insights or context that would be very helpful.
> 
> Thanks,
> Nick Riasanovsky

Reply via email to