Beispiel #1
0
        /////////// <summary>
        /////////// Returns true to indicate that column of this type is unique
        /////////// </summary>
        /////////// <param name="context">The context that the result depends on </param>
        ////////public abstract bool? GetColumnUniqueConstraint(Compiler compiler);

        /// <summary>
        /// Returns script for check constraint on column level
        /// </summary>
        public virtual string GetColumnCheckScript(RDBMSCompiler compiler, RDBMSEntity column, Compiler.Outputs outputs)
        => string.Empty;
Beispiel #2
0
 /// <summary>
 /// Returns script for auto-generated values, may also emit compiler-specific object like sequence or generator
 /// </summary>
 public virtual string GetColumnAutoGeneratedScript(RDBMSCompiler compiler, RDBMSEntity column, Compiler.Outputs outputs)
 => string.Empty;
Beispiel #3
0
 /// <summary>
 /// Returns script for default values, may also emit compiler-specific object like sequence or generator or insert rows in some other table
 /// </summary>
 public virtual string GetColumnDefaultScript(RDBMSCompiler compiler, RDBMSEntity column, Compiler.Outputs outputs)
 {
     return(string.Empty);
 }
Beispiel #4
0
        public override string GetColumnCheckScript(RDBMSCompiler compiler, RDBMSEntity column, Compiler.Outputs outputs)
        {
            var enumLine = string.Join(", ", Values.Select(v => compiler.EscapeString(v.Trim())));

            return(compiler.TransformKeywordCase("check ({0} in ({1}))")
                   .Args(
                       compiler.GetQuotedIdentifierName(RDBMSEntityType.Column, column.TransformedName),
                       enumLine
                       ));
        }
Beispiel #5
0
 public override string GetColumnCheckScript(RDBMSCompiler compiler, RDBMSEntity column, Compiler.Outputs outputs)
 {
     return(compiler.TransformKeywordCase("check ({0} > 0 and {0} < 200)").Args(compiler.GetQuotedIdentifierName(RDBMSEntityType.Column, column.TransformedName)));
 }
Beispiel #6
0
        public override string GetColumnAutoGeneratedScript(RDBMSCompiler compiler, RDBMSEntity column, Compiler.Outputs outputs)
        {
            switch (compiler.Target)
            {
            case TargetType.MySQL: return("AUTO_INCREMENT");

            case TargetType.PostgreSQL: {
                var seq = "SEQ_{0}_{1}".Args(column.ParentEntity.TransformedShortName, column.TransformedShortName);
                outputs[RDBMSCompiler.SEQUENCES_OUTPUT].AppendLine("CREATE SEQUENCE {0} START 0;".Args(seq));
                return("default nextval('{0}')".Args(seq));
            }

            case TargetType.MsSQLServer: return("IDENTITY(1,1)");

            default: return(string.Empty);
            }
        }