001package gudusoft.gsqlparser.common.structured;
002
003/**
004 * The kinds of step in a {@link StructuredColumnPath}.
005 * <p>
006 * {@link #SUBSCRIPT} is a {@code [expr]} whose container is not known yet: the access-path normalizer
007 * ({@code gudusoft.gsqlparser.nodes.structured.NestedAccessNormalizer}) refines it to {@link #ARRAY_ELEMENT} or
008 * {@link #MAP_VALUE} from the declared type, the subscript syntax, or the vendor's rule, and a path that still holds
009 * one after refinement reads its base column whole. {@link #STAR} is the wildcard of {@code customer.*}, always the
010 * last step.
011 */
012public enum StructuredPathSegmentKind {
013    ARRAY_ELEMENT,
014    FIELD,
015    MAP_KEY,
016    MAP_VALUE,
017    SUBSCRIPT,
018    STAR
019}