On Monday, March 14, 2016 at 7:45:04 AM UTC-7, Ilja Resch wrote:
>
> Hi,
>
> At the moment it is not possible to alter column with
> set_column_allow_null,
>
> when column-type is text, ntext, nvarchar(MAX) or varchar(MAX).
>
> Following sql is created.
>
> In case of (n)text:
> ALTER TABLE [test_migration] ALTER COLUMN [text_column] text(2147483647)
> NULL
> ALTER TABLE [test_migration] ALTER COLUMN [ntext_column] ntext(1073741823)
> NULL
>
>
> and in case of (n)varchar(MAX):
> ALTER TABLE [test_migration] ALTER COLUMN [nvarcharmax_column] nvarchar(-1
> ) NULL
> ALTER TABLE [test_migration] ALTER COLUMN [varcharmax_column] varchar(-1)
> NULL
>
> This would fix the Problem:
> lib/sequel/adapters/shared/mssql.rb:284 (alter_table_sql(table, op))
> sch = schema(table).find{|k,v| k.to_s == op[:name].to_s}.last
> type = sch[:db_type]
> if [:string, :decimal].include?(sch[:type]) && !["text",
> "ntext"].include?(type) and size = (sch[:max_chars] || sch[:column_size])
> size = "MAX" if size == -1
> type += "(#{size}#{", #{sch[:scale]}" if sch[:scale] && sch[:scale].to_i
> > 0})"
> end
>
> I did not found any other methods with this issue. But I'm not sure if
> this is the best way to fix it.
>
> Thanks
>
This appears to be a good fix. In any case, it shouldn't hurt as -1
shouldn't be a valid size. I'm running it through the test suites now, if
it passes I'll push it up to GitHub.
Thanks,
Jeremy
--
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.