summaryrefslogtreecommitdiff
path: root/odb/relational/mssql/schema.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-04-05 12:27:59 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-04-10 18:46:44 +0200
commitbb111ac2fdff909ed0f91d6f1f65c05aaf984936 (patch)
treeac681b67c848fade47538b27bf8c179c068b5433 /odb/relational/mssql/schema.cxx
parentca6ab8a1a4eedf6f751f5ba2205cd57ca37fad80 (diff)
Add NOT NULL column without default value initially as NULL
Diffstat (limited to 'odb/relational/mssql/schema.cxx')
-rw-r--r--odb/relational/mssql/schema.cxx23
1 files changed, 12 insertions, 11 deletions
diff --git a/odb/relational/mssql/schema.cxx b/odb/relational/mssql/schema.cxx
index 2db0c12..d1d892a 100644
--- a/odb/relational/mssql/schema.cxx
+++ b/odb/relational/mssql/schema.cxx
@@ -341,23 +341,21 @@ namespace relational
alter_column (base const& x): base (x) {}
virtual void
- traverse (sema_rel::alter_column& ac)
+ traverse (sema_rel::column& c)
{
- assert (ac.null_altered ());
-
// Relax (NULL) in pre and tighten (NOT NULL) in post.
//
- if (pre_ != ac.null ())
+ if (pre_ != c.null ())
return;
- using sema_rel::alter_table;
- alter_table& at (static_cast<alter_table&> (ac.scope ()));
+ using sema_rel::table;
+ table& at (static_cast<table&> (c.scope ()));
pre_statement ();
os << "ALTER TABLE " << quote_id (at.name ()) << endl
<< " ALTER COLUMN ";
- alter (ac);
+ alter (c);
os << endl;
post_statement ();
@@ -380,8 +378,11 @@ namespace relational
alter_header (at.name ());
os << " ADD ";
- instance<create_column> c (emitter (), stream (), format_);
- trav_rel::unames n (*c);
+ instance<create_column> cc (emitter (), stream (), format_);
+ trav_rel::alter_column ac; // Override.
+ trav_rel::unames n;
+ n >> cc;
+ n >> ac;
names (at, n);
os << endl;
@@ -415,8 +416,8 @@ namespace relational
alter_header (at.name ());
os << " DROP COLUMN ";
- instance<drop_column> c (emitter (), stream (), format_);
- trav_rel::unames n (*c);
+ instance<drop_column> dc (emitter (), stream (), format_);
+ trav_rel::unames n (*dc);
names (at, n);
os << endl;