001package gudusoft.gsqlparser.catalog.runtime; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.catalog.diagnostic.CatalogDiagnostic; 005 006import java.util.List; 007import java.util.Optional; 008 009/** 010 * Immutable point-in-time view of catalog metadata. 011 * 012 * <p>Plan §7.2 / §10.5. Stable per analysis run; {@code provider.refresh(...)} produces a 013 * <em>new</em> snapshot rather than mutating this one.</p> 014 * 015 * <p>Phase 1A skeleton — implementations land in P1B (T1B.5, T1B.7).</p> 016 */ 017public interface CatalogSnapshot { 018 019 EDbVendor vendor(); 020 021 Optional<CatalogEntry> find(CatalogQualifiedName name, CatalogObjectKind kind); 022 023 List<CatalogEntry> children(CatalogObjectId parent, CatalogObjectKind kind); 024 025 List<CatalogDiagnostic> diagnostics(); 026 027 long materializedAtMillis(); 028}