Skip to content

Commit 5739ce0

Browse files
authored
Merge pull request dalibo#163 from spanevin/shema-level-comments
Add support of schema-level comments
2 parents 0f9e080 + 6f5af05 commit 5739ce0

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

sqlserver2pgsql.pl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)