예제 #1
0
            public static FluentColumn AutoIncrement(string name)
            {
                var fc = SColumn.Int32(name);

                fc.Object.IsAutoIncrement = true;
                return(fc);
            }
 protected void TestDefaults(Column c)
 {
     Assert.IsNull(c.DefaultValue);
     Assert.AreEqual("COL1", c.ColumnName);
     Assert.IsFalse(c.IsAutoIncrement);
     Assert.IsTrue(c.IsNullable);
 }
 public FluentColumn(string name, DbType type, int size)
 {
     Object = new Column(name, type);
     if (size > 0) {
         Object.Size = size;
     }
 }
 private static void SetAutoIncrementColumn(Column autoIncrementColumn, string tableName, ICollection<string> sqls) {
     if (autoIncrementColumn == null) {
         return;
     }
     var sequenceName = SequencePrefix + tableName;
     sqls.Add(String.Format("CREATE SEQUENCE {0} INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1", sequenceName));
     sqls.Add(String.Format("ALTER TABLE {0} ALTER COLUMN {1} SET DEFAULT NEXTVAL(\'{2}\'::REGCLASS)", tableName, autoIncrementColumn.ColumnName, sequenceName));
 }
예제 #5
0
        public override string GetColumnToSqlWhenCreate(Column col)
        {
            string nullOption = col.IsNullable ? WordNull : WordNotNull;
            string autoIncrement = col.IsAutoIncrement ? " AUTO_INCREMENT" : "";
            string defaultValue = col.DefaultValue != null ? " default "+GetColumnValueToSql(col.DefaultValue): "";

            return String.Format("{0} {1} {2}{3}{4}", col.ColumnName, GetDbTypeString(col.Type, col.Size), nullOption, defaultValue, autoIncrement);
        }
예제 #6
0
        public override string GetColumnToSqlWhenCreate(Column col) {
            string colType = GetDbTypeString(col.Type, col.Size);
            string colNullable = col.IsNullable ? WordNull : WordNotNull;
            string colAutoIncrement = col.IsAutoIncrement ? "identity(1,1)" : "";

            string colDefault = (col.DefaultValue != null) ?
                String.Format("default ({0})", GetColumnValueToSql(col.DefaultValue)) : "";

            //name type default nullable autoIncrement
            return String.Format("{0} {1} {2} {3} {4}", col.ColumnName, colType, colNullable, colDefault, colAutoIncrement);
        }
        public override string GetColumnToSqlWhenCreate(Column col)
        {
            string colType = GetDbTypeString(col.Type, col.Size);
            string colNullable = col.IsNullable ? WordNull : WordNotNull;

            string colDefault = (col.DefaultValue != null)
                                    ? String.Format(" default {0}", GetColumnValueToSql(col.DefaultValue))
                                    : "";

            //name type default nullable
            return String.Format("{0} {1}{2} {3}", col.ColumnName, colType, colDefault, colNullable);
        }
예제 #8
0
        public override string GetColumnToSqlWhenCreate(Column col) {
        	string colAutoIncrement = "";
			if(col.IsAutoIncrement) {
				colAutoIncrement = "autoincrement";
				col.IsPrimaryKey = true;
			}
            string colType = GetDbTypeString(col.Type, col.Size);
            string colNullable = col.IsNullable ? WordNull : WordNotNull;
			string colPrimaryKey = col.IsPrimaryKey ? "primary key" : "";

            string colDefault = (col.DefaultValue != null) ?
                                        String.Format("default ({0})", GetColumnValueToSql(col.DefaultValue)) : "";

			return String.Format("{0} {1} {2} {3} {4} {5}", col.ColumnName, colType, colNullable, colDefault, colPrimaryKey, colAutoIncrement);
        }
        public string GetModifyColumnSql(string tableName, string columnName, Column columnDefinition) {
            var colStructure = GetSqlColumnStructure(columnDefinition, _getDbTypeString);
            var builder = new StringBuilder();
            const string alterColumn = "ALTER COLUMN";

            builder.AppendFormat("ALTER TABLE {0} ", tableName);

            GetTypeSqlToRenameColumnCommand(columnName, colStructure, builder, alterColumn);
            GetNullableSqlToRenameColumnCommand(columnName, colStructure, builder, alterColumn);
            GetDefaultValueSqlToRenameColumnCommand(columnName, colStructure, builder, alterColumn);

            builder.Remove(builder.Length - 1, 1);

            return builder.ToString();
        }
예제 #10
0
 public override string GetModifyColumnSql(string tableName, string columnName, Column columnDefinition)
 {
     return String.Format("alter table {0} modify {1}", tableName, GetColumnToSqlWhenCreate(columnDefinition));
 }
예제 #11
0
 public override string GetModifyColumnSql(string tableName, string columnName, Column columnDefinition)
 {
     throw new NotSupportedByDialect("Try recreating table", "GetModifyColumnSql", GetDialectName());
 }
예제 #12
0
 public override string GetModifyColumnSql(string tableName, string columnName, Column columnDefinition) {
     return _postgreSqlColumnDialect.GetModifyColumnSql(tableName, columnName, columnDefinition);
 }
 private SqlColumnStructure GetSqlColumnStructure(Column col, Func<DbType, int, string> getDbTypeString) {
     return new SqlColumnStructure {
         Type = getDbTypeString(col.Type, col.Size),
         Nullable = col.IsNullable ? _wordNull : _wordNotNull,
         Default = (col.DefaultValue != null) ? String.Format("DEFAULT {0}", GetColumnValueToSql(col.DefaultValue)) : ""
     };
 }
예제 #14
0
 public void When_column_is_autoIncrement_it_is_also_not_null()
 {
     var c = new Column("COL1", DbType.UInt32);
     c.IsAutoIncrement = true;
     Assert.IsFalse(c.IsNullable);
 }
예제 #15
0
 public static FluentColumn Decimal(string name)
 {
     return(SColumn.Decimal(name));
 }
예제 #16
0
 public static FluentColumn Binary(string name)
 {
     return(SColumn.Binary(name));
 }
예제 #17
0
 public static FluentColumn Boolean(string name)
 {
     return(SColumn.Boolean(name));
 }
예제 #18
0
 public static FluentColumn Int64(string name)
 {
     return(SColumn.Int64(name));
 }
예제 #19
0
 public static FluentColumn Clob(string name)
 {
     return(SColumn.Clob(name));
 }
예제 #20
0
 public static FluentColumn String(string name, int size)
 {
     return(SColumn.String(name, size));
 }
예제 #21
0
 public void Constructor_with_no_type_test()
 {
     var c = new Column("COL1");
     Assert.AreEqual(DbType.String, c.Type);
     TestDefaults(c);
 }
예제 #22
0
 public void Constructor_with_type_test()
 {
     var c = new Column("COL1", DbType.UInt32);
     Assert.AreEqual(DbType.UInt32, c.Type);
     TestDefaults(c);
 }
예제 #23
0
 public static FluentColumn Single(string name)
 {
     return(SColumn.Single(name));
 }
예제 #24
0
 public void When_column_is_primary_key_it_is_also_not_null()
 {
     var c = new Column("COL1", DbType.UInt32);
     c.IsPrimaryKey = true;
     Assert.IsFalse(c.IsNullable);
 }
예제 #25
0
 public AddColumn(IDataClient dataClient, Column column)
     : base(dataClient)
 {
     _column = column;
 }
예제 #26
0
 public override string GetColumnToSqlWhenCreate(Column col) {
     return _postgreSqlColumnDialect.GetColumnToSqlWhenCreate(col);
 }
 public void AddColumn(string tableName, Column column)
 {
 }
 public void ModifyColumn(string firstTableName, string columnName, Column columnDefinition)
 {
 }
예제 #29
0
 public static FluentColumn Guid(string name)
 {
     return(SColumn.Guid(name));
 }
예제 #30
0
 public static FluentColumn Double(string name)
 {
     return(SColumn.Double(name));
 }
예제 #31
0
 public virtual string GetAddColumnSql(string table, Column column)
 {
     return String.Format("alter table {0} add {1}", table, GetColumnToSqlWhenCreate(column));
 }
예제 #32
0
 public override string GetModifyColumnSql(string tableName, string columnName, Column columnDefinition)
 {
     throw new NotImplementedException();
 }
예제 #33
0
 public void ModifyColumn(string tableName, string columnName, Column columnDefinition)
 {
     Database.ExecuteSql(Dialect.GetModifyColumnSql(tableName, columnName, columnDefinition));
 }
예제 #34
0
 public abstract string GetModifyColumnSql(string tableName, string columnName, Column columnDefinition);
예제 #35
0
 public virtual void AddColumn(string tableName, Column column)
 {
     string sql = Dialect.GetAddColumnSql(tableName, column);
     Database.ExecuteSql(sql);
 }
예제 #36
0
 public abstract string GetColumnToSqlWhenCreate(Column col);
 public string GetColumnToSqlWhenCreate(Column col) {
     var colStructure = GetSqlColumnStructure(col, _getDbTypeString);
     return String.Format("{0} {1} {2} {3}", col.ColumnName, colStructure.Type, colStructure.Default, colStructure.Nullable);
 }