@@ -2313,7 +2313,7 @@ sub parse_dump
23132313 # I hope it will be sufficient (won't be if someone decides to end a comment with a quote)
23142314
23152315 unless ($sqlproperty =~
2316- / ^EXEC sys.sp_addextendedproperty \@ name=N'(.*?)'\s *,\s *\@ value=N'(.*)'\s *,\s *\@ level0type=N'(.*?)'\s *,\s *\@ level0name=N'(.*?)'\s *(?:,\s *\@ level1type=N'(.*?)'\s *,\s *\@ level1name=N'(.*?)')\s *?(?:,\s *\@ level2type=N'(.*?)'\s *,\s *\@ level2name=N'(.*?)')?/s )
2316+ / ^EXEC sys.sp_addextendedproperty \@ name=N'(.*?)'\s *(?: ,\s *\@ value=N'(.*? )'\s *)?(?: ,\s *\@ level0type=N'(.*?)'\s *)?(?: ,\s *\@ level0name=N'(.*?)'\s *)? (?:,\s *\@ level1type=N'(.*?)'\s *,\s *\@ level1name=N'(.*?)')? \s *?(?:,\s *\@ level2type=N'(.*?)'\s *,\s *\@ level2name=N'(.*?)')?/s )
23172317 {
23182318 # Not parsing a comment should not stop
23192319 print STDERR " Could not parse <$sqlproperty >. Ignored.\n " ;
@@ -2322,7 +2322,11 @@ sub parse_dump
23222322 my ($comment , $schema , $obj , $objname , $subobj , $subobjname )
23232323 = ($2 , $4 , $5 , $6 , $7 , $8 );
23242324 $schema =relabel_schemas($schema );
2325- if ($obj eq ' TABLE' and not defined $subobj )
2325+ if (not defined $obj )
2326+ {
2327+ $objects -> {SCHEMAS }-> {$schema }-> {COMMENT } = $comment ;
2328+ }
2329+ elsif ($obj eq ' TABLE' and not defined $subobj )
23262330 {
23272331 $objects -> {SCHEMAS }-> {$schema }-> {TABLES }-> {$objname }-> {COMMENT } =
23282332 $comment ;
@@ -3040,6 +3044,13 @@ sub generate_schema
30403044 # Comments on tables and columns
30413045 while (my ($schema , $refschema ) = each %{$objects -> {SCHEMAS }})
30423046 {
3047+ # Comments on schemas
3048+ if (defined ($refschema -> {COMMENT }))
3049+ {
3050+ print AFTER " COMMENT ON SCHEMA " . format_identifier($schema ) . " IS '"
3051+ . $refschema -> {COMMENT } . " ';\n " ;
3052+ }
3053+
30433054 # Comments on tables
30443055 foreach my $table (sort keys %{$refschema -> {TABLES }})
30453056 {
0 commit comments