//--------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql { using System; using System.Globalization; /// /// Represents eSQL compilation options. /// internal sealed class ParserOptions { internal enum CompilationMode { /// /// Normal mode. Compiles eSQL command without restrictions. /// Name resolution is case-insensitive (eSQL default). /// NormalMode, /// /// View generation mode: optimizes compilation process to ignore uncessary eSQL constructs: /// - GROUP BY, HAVING and ORDER BY clauses are ignored. /// - WITH RELATIONSHIP clause is allowed in type constructors. /// - Name resolution is case-sensitive. /// RestrictedViewGenerationMode, /// /// Same as CompilationMode.Normal plus WITH RELATIONSHIP clause is allowed in type constructors. /// UserViewGenerationMode } /// /// Sets/Gets eSQL parser compilation mode. /// internal CompilationMode ParserCompilationMode; internal StringComparer NameComparer { get { return this.NameComparisonCaseInsensitive ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal; } } internal bool NameComparisonCaseInsensitive { get { return this.ParserCompilationMode == CompilationMode.RestrictedViewGenerationMode ? false : true; } } } }