-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chunk long strings on insert for Oracle (DAT-16774) (#5566)
- Loading branch information
1 parent
4dcf165
commit 76b9373
Showing
6 changed files
with
115 additions
and
1 deletion.
There are no files selected for viewing
29 changes: 29 additions & 0 deletions
29
...ration-tests/src/test/groovy/liquibase/datatype/core/OracleCharTypeIntegrationTest.groovy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package liquibase.datatype.core | ||
|
||
import liquibase.Scope | ||
import liquibase.command.util.CommandUtil | ||
import liquibase.extension.testing.testsystem.DatabaseTestSystem | ||
import liquibase.extension.testing.testsystem.TestSystemFactory | ||
import liquibase.extension.testing.testsystem.spock.LiquibaseIntegrationTest | ||
import spock.lang.Shared | ||
import spock.lang.Specification | ||
|
||
import java.sql.ResultSet | ||
|
||
@LiquibaseIntegrationTest | ||
class OracleCharTypeIntegrationTest extends Specification { | ||
|
||
@Shared | ||
private DatabaseTestSystem oracle = Scope.currentScope.getSingleton(TestSystemFactory).getTestSystem("oracle") as DatabaseTestSystem | ||
|
||
def "insert statement with value longer than 4000 characters is chunked and inserted into clob column properly"() { | ||
when: | ||
CommandUtil.runUpdate(oracle, "src/test/resources/changelogs/common/large-clob-data-load.xml") | ||
|
||
then: | ||
ResultSet resultSet = oracle.getConnection().prepareStatement("SELECT id, name FROM person").executeQuery() | ||
resultSet.next() | ||
resultSet.getInt(1) == 1 | ||
resultSet.getString(2) == """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sagittis feugiat velit tempus sollicitudin. Ut dapibus, tellus vel commodo commodo, est felis varius felis, eget pulvinar mauris risus eu lacus. Vestibulum quis orci vitae sem pulvinar semper. Fusce sit amet nulla enim. Maecenas faucibus vehicula pharetra. Pellentesque semper lacinia semper. Integer placerat ipsum a neque dapibus, vel eleifend ligula fermentum. Mauris hendrerit iaculis euismod. In venenatis ligula in velit venenatis, eu euismod lorem congue. Integer metus tortor, porttitor ut urna ut, maximus venenatis quam. Nam dictum odio libero, in feugiat lorem convallis vel. Phasellus enim lorem, ullamcorper eu pellentesque et, aliquam quis libero. Pellentesque bibendum felis vitae pulvinar tincidunt. Quisque et nulla convallis, varius lorem vel, iaculis justo. Nulla facilisi.Cras sagittis convallis risus et eleifend. Nunc ut pretium ipsum. Sed nec hendrerit sem. Morbi vestibulum eros vehicula erat mattis fermentum. Vivamus vel maximus felis. Nunc eget mauris in risus elementum ullamcorper. Phasellus semper consectetur mollis. Vivamus sit amet arcu vitae ligula molestie sollicitudin non sed ante. Suspendisse et rhoncus est.Nam vitae varius eros. Donec lorem dolor, varius eget fringilla quis, hendrerit quis sapien. Donec eget ipsum tempus, auctor augue nec, pharetra felis. Praesent maximus iaculis nunc, et iaculis magna pellentesque a. Nullam efficitur arcu dui, tempor luctus justo aliquam id. Morbi mattis, mi pellentesque fringilla cursus, urna mauris malesuada est, id sodales massa urna id massa. Aliquam elementum lobortis ligula, at sodales ante suscipit et. Aenean pellentesque finibus augue sit amet pulvinar. Duis nec nibh facilisis, fringilla libero ut, dignissim mauris. Donec orci arcu, vulputate tristique diam at, porttitor vulputate purus.Donec tincidunt eleifend arcu a pretium. Nunc nec turpis laoreet, luctus ex eu, pretium lacus. Mauris mi sapien, egestas a arcu sed, sodales imperdiet libero. Aliquam erat volutpat. Nulla eu est eleifend, elementum nisi non, dignissim arcu. In posuere eu sapien a facilisis. Nullam nec dui lectus. Praesent dictum augue sapien, vitae gravida justo mattis sed. Donec ullamcorper ullamcorper convallis. Integer dapibus maximus augue, sed luctus elit cursus et.Fusce ac augue nec orci faucibus bibendum. In vestibulum sodales porta. Praesent iaculis consectetur suscipit. Phasellus tempor est quis aliquet varius. Aliquam tincidunt vel urna ac fermentum. In mattis massa nibh, eu vestibulum turpis volutpat nec. Phasellus posuere leo ultrices purus fringilla fringilla. Integer augue ligula, varius quis elit a, sagittis egestas turpis. Curabitur velit metus, blandit vel nunc et, faucibus varius lorem. Pellentesque pharetra lacus justo, nec finibus ipsum tristique sit amet. Phasellus purus turpis, accumsan sit amet dolor quis, vehicula varius metus. Praesent sed nunc libero. Morbi faucibus iaculis nisi, at lobortis risus commodo et.Suspendisse potenti. Sed leo risus, venenatis at condimentum quis, facilisis pulvinar sem. Aenean varius libero nisl, et volutpat neque facilisis nec. Maecenas ac mi sit amet purus imperdiet condimentum. Vestibulum eget lacus odio. Nullam suscipit orci id ligula sollicitudin convallis. Morbi pulvinar, erat imperdiet auctor iaculis, massa nulla luctus erat, ac vehicula velit est eu dolor. Morbi lectus justo, vestibulum a purus nec, porttitor imperdiet magna. Nunc ut aliquet dui, at suscipit augue.Nam congue augue arcu, sit amet vehicula elit tincidunt in. Nunc sed purus lectus. Donec ultricies at diam eget consectetur. Nunc et odio nulla. Donec sed lacus diam. Vivamus at ultrices risus, vitae pretium lorem. Curabitur bibendum, nulla non bibendum ullamcorper, lectus ipsum viverra urna, a condimentum mauris arcu id felis.Proin mattis rutrum accumsan. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer gravida arcu vel commodo maximus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras aliquet enim lacus, eu commodo erat lobortis ut. Vivamus bibendum mi ut commodo egestas. Maecenas blandit id risus vel suscipit. Donec pellentesque in lacus eget fringilla. Cras et tortor magna. In mattis eros nulla, vel porttitor massa congue quis. Phasellus quis elit erat. Vestibulum at sagittis dui.Curabitur eleifend consequat justo, nec luctus turpis accumsan vel. Nullam et ultrices libero. Etiam nibh ante, egestas sit amet iaculis nec, rutrum id risus. Integer vitae consectetur nibh, ut lacinia eros. Cras pellentesque euismod neque. Donec leo lacus, eleifend eget erat vitae, dignissim pulvinar est. Curabitur nulla nisl, faucibus feugiat pulvinar vitae, laoreet in dolor.Quisque leo erat, feugiat vel sodales eget, commodo eu lorem. Etiam sit amet laoreet ligula. Fusce lacus neque, porta in orci id, aliquam placerat magna. Mauris a semper mi. Aliquam augue sapien, tempor ut sollicitudin eu, consectetur ac urna. Nulla odio metus, fringilla in ultrices a, dapibus nec ligula. Nulla sed accumsan felis. Curabitur lacinia arcu molestie fringilla dictum. Fusce id neque nibh. Vestibulum vitae diam efficitur, hendrerit enim lacinia, auctor nibh.Sed pulvinar mattis velit, sit amet aliquam ante dictum et. Fusce tristique aliquet velit. Nunc varius quam non eros efficitur, eget maximus leo ultrices. Sed interdum velit dolor, non cursus lectus condimentum quis. Donec nec finibus est. Donec viverra et est eu ultrices. Nam tempor, odio a venenatis ornare, nulla arcu sodales felis, vitae sollicitudin ex ipsum sed risus. Aliquam convallis sed mauris id mattis. Praesent justo felis, semper vel lacus vestibulum, convallis accumsan orci. Sed a dictum dui, ut ultrices tortor. Ut sit amet dolor sit amet justo vulputate ornare.Sed justo libero, bibendum a nisl lacinia, porttitor accumsan dui. Vestibulum auctor dapibus gravida. Vestibulum rhoncus lacinia mauris vel fringilla. Aenean pellentesque feugiat risus, nec pellentesque orci facilisis sit amet. Vivamus malesuada, enim non imperdiet volutpat, tortor ipsum porttitor nisi, vitae dignissim augue lorem id felis. Sed eleifend diam magna, sit amet dictum orci suscipit quis. Sed ante turpis, gravida a diam id, efficitur pretium eros. Sed id vestibulum dolor, eget sollicitudin purus. Vivamus maximus, ipsum ultricies rhoncus pretium, quam risus malesuada massa, rutrum rhoncus purus lectus eget justo. Vestibulum elementum nunc venenatis, rutrum ligula at, consectetur ligula. Sed non arcu ut arcu lacinia blandit. Quisque quis eros et urna semper sodales. Curabitur et auctor ante, mollis hendrerit ex. Praesent eu aliquam ipsum, vel eleifend risus. Vestibulum facilisis sollicitudin lectus sit amet tristique. Vestibulum molestie nibh in maximus ultrices. Nam semper urna ut rhoncus tristique. Sed accumsan turpis quis.""" | ||
} | ||
} |
25 changes: 25 additions & 0 deletions
25
liquibase-integration-tests/src/test/resources/changelogs/common/large-clob-data-load.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<databaseChangeLog | ||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> | ||
|
||
<changeSet id="1" author="your.name" labels="example-label" context="example-context"> | ||
<createTable tableName="person"> | ||
<column name="id" type="int" autoIncrement="true"> | ||
<constraints primaryKey="true" nullable="false"/> | ||
</column> | ||
<column name="name" type="clob"> | ||
<constraints nullable="false"/> | ||
</column> | ||
</createTable> | ||
</changeSet> | ||
|
||
<changeSet id="2" author="your.name" labels="example-label" context="example-context"> | ||
<insert tableName="person"> | ||
<column name="id" value="1" /> | ||
<column name="name" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sagittis feugiat velit tempus sollicitudin. Ut dapibus, tellus vel commodo commodo, est felis varius felis, eget pulvinar mauris risus eu lacus. Vestibulum quis orci vitae sem pulvinar semper. Fusce sit amet nulla enim. Maecenas faucibus vehicula pharetra. Pellentesque semper lacinia semper. Integer placerat ipsum a neque dapibus, vel eleifend ligula fermentum. Mauris hendrerit iaculis euismod. In venenatis ligula in velit venenatis, eu euismod lorem congue. Integer metus tortor, porttitor ut urna ut, maximus venenatis quam. Nam dictum odio libero, in feugiat lorem convallis vel. Phasellus enim lorem, ullamcorper eu pellentesque et, aliquam quis libero. Pellentesque bibendum felis vitae pulvinar tincidunt. Quisque et nulla convallis, varius lorem vel, iaculis justo. Nulla facilisi.Cras sagittis convallis risus et eleifend. Nunc ut pretium ipsum. Sed nec hendrerit sem. Morbi vestibulum eros vehicula erat mattis fermentum. Vivamus vel maximus felis. Nunc eget mauris in risus elementum ullamcorper. Phasellus semper consectetur mollis. Vivamus sit amet arcu vitae ligula molestie sollicitudin non sed ante. Suspendisse et rhoncus est.Nam vitae varius eros. Donec lorem dolor, varius eget fringilla quis, hendrerit quis sapien. Donec eget ipsum tempus, auctor augue nec, pharetra felis. Praesent maximus iaculis nunc, et iaculis magna pellentesque a. Nullam efficitur arcu dui, tempor luctus justo aliquam id. Morbi mattis, mi pellentesque fringilla cursus, urna mauris malesuada est, id sodales massa urna id massa. Aliquam elementum lobortis ligula, at sodales ante suscipit et. Aenean pellentesque finibus augue sit amet pulvinar. Duis nec nibh facilisis, fringilla libero ut, dignissim mauris. Donec orci arcu, vulputate tristique diam at, porttitor vulputate purus.Donec tincidunt eleifend arcu a pretium. Nunc nec turpis laoreet, luctus ex eu, pretium lacus. Mauris mi sapien, egestas a arcu sed, sodales imperdiet libero. Aliquam erat volutpat. Nulla eu est eleifend, elementum nisi non, dignissim arcu. In posuere eu sapien a facilisis. Nullam nec dui lectus. Praesent dictum augue sapien, vitae gravida justo mattis sed. Donec ullamcorper ullamcorper convallis. Integer dapibus maximus augue, sed luctus elit cursus et.Fusce ac augue nec orci faucibus bibendum. In vestibulum sodales porta. Praesent iaculis consectetur suscipit. Phasellus tempor est quis aliquet varius. Aliquam tincidunt vel urna ac fermentum. In mattis massa nibh, eu vestibulum turpis volutpat nec. Phasellus posuere leo ultrices purus fringilla fringilla. Integer augue ligula, varius quis elit a, sagittis egestas turpis. Curabitur velit metus, blandit vel nunc et, faucibus varius lorem. Pellentesque pharetra lacus justo, nec finibus ipsum tristique sit amet. Phasellus purus turpis, accumsan sit amet dolor quis, vehicula varius metus. Praesent sed nunc libero. Morbi faucibus iaculis nisi, at lobortis risus commodo et.Suspendisse potenti. Sed leo risus, venenatis at condimentum quis, facilisis pulvinar sem. Aenean varius libero nisl, et volutpat neque facilisis nec. Maecenas ac mi sit amet purus imperdiet condimentum. Vestibulum eget lacus odio. Nullam suscipit orci id ligula sollicitudin convallis. Morbi pulvinar, erat imperdiet auctor iaculis, massa nulla luctus erat, ac vehicula velit est eu dolor. Morbi lectus justo, vestibulum a purus nec, porttitor imperdiet magna. Nunc ut aliquet dui, at suscipit augue.Nam congue augue arcu, sit amet vehicula elit tincidunt in. Nunc sed purus lectus. Donec ultricies at diam eget consectetur. Nunc et odio nulla. Donec sed lacus diam. Vivamus at ultrices risus, vitae pretium lorem. Curabitur bibendum, nulla non bibendum ullamcorper, lectus ipsum viverra urna, a condimentum mauris arcu id felis.Proin mattis rutrum accumsan. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer gravida arcu vel commodo maximus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras aliquet enim lacus, eu commodo erat lobortis ut. Vivamus bibendum mi ut commodo egestas. Maecenas blandit id risus vel suscipit. Donec pellentesque in lacus eget fringilla. Cras et tortor magna. In mattis eros nulla, vel porttitor massa congue quis. Phasellus quis elit erat. Vestibulum at sagittis dui.Curabitur eleifend consequat justo, nec luctus turpis accumsan vel. Nullam et ultrices libero. Etiam nibh ante, egestas sit amet iaculis nec, rutrum id risus. Integer vitae consectetur nibh, ut lacinia eros. Cras pellentesque euismod neque. Donec leo lacus, eleifend eget erat vitae, dignissim pulvinar est. Curabitur nulla nisl, faucibus feugiat pulvinar vitae, laoreet in dolor.Quisque leo erat, feugiat vel sodales eget, commodo eu lorem. Etiam sit amet laoreet ligula. Fusce lacus neque, porta in orci id, aliquam placerat magna. Mauris a semper mi. Aliquam augue sapien, tempor ut sollicitudin eu, consectetur ac urna. Nulla odio metus, fringilla in ultrices a, dapibus nec ligula. Nulla sed accumsan felis. Curabitur lacinia arcu molestie fringilla dictum. Fusce id neque nibh. Vestibulum vitae diam efficitur, hendrerit enim lacinia, auctor nibh.Sed pulvinar mattis velit, sit amet aliquam ante dictum et. Fusce tristique aliquet velit. Nunc varius quam non eros efficitur, eget maximus leo ultrices. Sed interdum velit dolor, non cursus lectus condimentum quis. Donec nec finibus est. Donec viverra et est eu ultrices. Nam tempor, odio a venenatis ornare, nulla arcu sodales felis, vitae sollicitudin ex ipsum sed risus. Aliquam convallis sed mauris id mattis. Praesent justo felis, semper vel lacus vestibulum, convallis accumsan orci. Sed a dictum dui, ut ultrices tortor. Ut sit amet dolor sit amet justo vulputate ornare.Sed justo libero, bibendum a nisl lacinia, porttitor accumsan dui. Vestibulum auctor dapibus gravida. Vestibulum rhoncus lacinia mauris vel fringilla. Aenean pellentesque feugiat risus, nec pellentesque orci facilisis sit amet. Vivamus malesuada, enim non imperdiet volutpat, tortor ipsum porttitor nisi, vitae dignissim augue lorem id felis. Sed eleifend diam magna, sit amet dictum orci suscipit quis. Sed ante turpis, gravida a diam id, efficitur pretium eros. Sed id vestibulum dolor, eget sollicitudin purus. Vivamus maximus, ipsum ultricies rhoncus pretium, quam risus malesuada massa, rutrum rhoncus purus lectus eget justo. Vestibulum elementum nunc venenatis, rutrum ligula at, consectetur ligula. Sed non arcu ut arcu lacinia blandit. Quisque quis eros et urna semper sodales. Curabitur et auctor ante, mollis hendrerit ex. Praesent eu aliquam ipsum, vel eleifend risus. Vestibulum facilisis sollicitudin lectus sit amet tristique. Vestibulum molestie nibh in maximus ultrices. Nam semper urna ut rhoncus tristique. Sed accumsan turpis quis." /> | ||
</insert> | ||
</changeSet> | ||
</databaseChangeLog> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.