X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=t%2F73oracle.t;h=daade011468eb859620ec702c82e8c226a1846b4;hp=911fad589df32a254d73f348c40eb72ad9bcdd78;hb=720448921cee676e52ed7e7b37c17352ea9b8470;hpb=f8583f8f51fd7ac8eeb348ad390219152a8a3bf8 diff --git a/t/73oracle.t b/t/73oracle.t index 911fad5..daade01 100644 --- a/t/73oracle.t +++ b/t/73oracle.t @@ -670,15 +670,43 @@ SKIP: { $schema1_dbh->do("GRANT INSERT ON artist TO $user2"); $schema1_dbh->do("GRANT SELECT ON artist_seq TO $user2"); - my $rs = $schema2->resultset('Artist'); + my $rs = $schema2->resultset('ArtistFQN'); - # qualify table with schema - local $rs->result_source->{name} = "${user}.artist"; + # first test with unquoted (default) sequence name in trigger body lives_and { my $row = $rs->create({ name => 'From Different Schema' }); ok $row->artistid; } 'used autoinc sequence across schemas'; + + # now quote the sequence name + + $schema1_dbh->do(qq{ + CREATE OR REPLACE TRIGGER artist_insert_trg + BEFORE INSERT ON artist + FOR EACH ROW + BEGIN + IF :new.artistid IS NULL THEN + SELECT "ARTIST_SEQ".nextval + INTO :new.artistid + FROM DUAL; + END IF; + END; + }); + + # sequence is cached in the rsrc + delete $rs->result_source->column_info('artistid')->{sequence}; + + lives_and { + my $row = $rs->create({ name => 'From Different Schema With Quoted Sequence' }); + ok $row->artistid; + } 'used quoted autoinc sequence across schemas'; + + my $schema_name = uc $user; + + is $rs->result_source->column_info('artistid')->{sequence}, + qq[${schema_name}."ARTIST_SEQ"], + 'quoted sequence name correctly extracted'; } done_testing;