diff --git a/.github/workflows/jdbc-tests-with-jtds.yml b/.github/workflows/jdbc-tests-with-jtds.yml new file mode 100644 index 00000000000..554ebc89fcf --- /dev/null +++ b/.github/workflows/jdbc-tests-with-jtds.yml @@ -0,0 +1,175 @@ +name: JDBC Tests with JTDS +on: [push, pull_request] + +jobs: + run-babelfish-jdbc-tests: + env: + INSTALL_DIR: psql + useJTDSInsteadOfMSSQLJDBC: "true" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + id: checkout + + - name: Install Dependencies + id: install-dependencies + if: always() + uses: ./.github/composite-actions/install-dependencies + + - name: Build Modified Postgres + id: build-modified-postgres + if: always() && steps.install-dependencies.outcome == 'success' + uses: ./.github/composite-actions/build-modified-postgres + with: + install_dir: 'psql' + code_coverage: 'yes' + + - name: Compile ANTLR + id: compile-antlr + if: always() && steps.build-modified-postgres.outcome == 'success' + uses: ./.github/composite-actions/compile-antlr + + - name: Build Extensions + id: build-extensions + if: always() && steps.compile-antlr.outcome == 'success' + uses: ./.github/composite-actions/build-extensions + + - name: Build tds_fdw Extension + id: build-tds_fdw-extension + if: always() && steps.build-extensions.outcome == 'success' + uses: ./.github/composite-actions/build-tds_fdw-extension + + - name: Build vector Extension + id: build-vector-extension + if: always() && steps.build-tds_fdw-extension.outcome == 'success' + uses: ./.github/composite-actions/build-vector-extension + + - name: Build PostGIS Extension + id: build-postgis-extension + if: always() && steps.build-vector-extension.outcome == 'success' + uses: ./.github/composite-actions/build-postgis-extension + + - name: Install Extensions + id: install-extensions + if: always() && steps.build-postgis-extension.outcome == 'success' + uses: ./.github/composite-actions/install-extensions + with: + wal_level: logical + + - name: Run JDBC Tests + id: jdbc + if: always() && steps.install-extensions.outcome == 'success' + timeout-minutes: 60 + uses: ./.github/composite-actions/run-jdbc-tests + + - name: Start secondary server + id: start-secondary + if: always() && steps.jdbc.outcome == 'success' + uses: ./.github/composite-actions/install-extensions + with: + psql_port: 5433 + tsql_port: 8199 + wal_level: logical + + - name: Setup Publication and Subscription + id: setup-pub-sub + if: always() && steps.start-secondary.outcome == 'success' + run: | + ~/${{env.INSTALL_DIR}}/bin/psql -v ON_ERROR_STOP=1 -d jdbc_testdb -U runner -c "CREATE PUBLICATION my_pub;" + ~/${{env.INSTALL_DIR}}/bin/psql -v ON_ERROR_STOP=1 -d jdbc_testdb -U runner -p 5433 -c "CREATE SUBSCRIPTION my_sub CONNECTION 'host=localhost port=5432 user=jdbc_user dbname=jdbc_testdb password=12345678' PUBLICATION my_pub;" + + - name: Run Replication Tests + id: replication + if: always() && steps.setup-pub-sub.outcome == 'success' + timeout-minutes: 60 + uses: ./.github/composite-actions/run-jdbc-tests + with: + input_dir: 'replication' + + - name: Cleanup babelfish database + id: cleanup + if: always() && steps.replication.outcome == 'success' + run: | + sudo ~/psql/bin/psql -d postgres -U runner -v user="jdbc_user" -v db="jdbc_testdb" -f .github/scripts/cleanup_babelfish_database.sql + + - name: Upload Log + if: always() && (steps.jdbc.outcome == 'failure' || steps.replication.outcome == 'failure') + uses: actions/upload-artifact@v2 + with: + name: postgres-log-jdbc + path: | + ~/psql/data/logfile + ~/psql/data_5433/logfile + + # The test summary files contain paths with ':' characters, which is not allowed with the upload-artifact actions + - name: Rename Test Summary Files + id: test-file-rename + if: always() && (steps.jdbc.outcome == 'failure' || steps.replication.outcome == 'failure') + run: | + cd test/JDBC/Info + timestamp=`ls -Art | tail -n 1` + cd $timestamp + mv $timestamp.diff ../output-diff.diff + mv "$timestamp"_runSummary.log ../run-summary.log + cd .. + # get the replication output diff as well if it is present + dir_count=`ls | wc -l` + if [[ $dir_count -eq 2 ]];then + timestamp=`ls -rt | tail -n 2 | sort -r | tail -n 1` + cd $timestamp + mv $timestamp.diff ../replication-output-diff.diff + mv "$timestamp"_runSummary.log ../replication-run-summary.log + + - name: Upload Run Summary + if: always() && steps.test-file-rename.outcome == 'success' + uses: actions/upload-artifact@v2 + with: + name: run-summary.log + path: | + test/JDBC/Info/run-summary.log + test/JDBC/Info/replication-run-summary.log + + - name: Upload Output Diff + if: always() && (steps.jdbc.outcome == 'failure' || steps.replication.outcome == 'failure') + uses: actions/upload-artifact@v2 + with: + name: jdbc-output-diff.diff + path: | + test/JDBC/Info/output-diff.diff + test/JDBC/Info/replication-output-diff.diff + + - name: Check and upload coredumps + if: always() && (steps.jdbc.outcome == 'failure' || steps.replication.outcome == 'failure') + uses: ./.github/composite-actions/upload-coredump + + - name: Generate Code Coverage + id: generate-code-coverage + if: always() && (steps.jdbc.outcome == 'success' && steps.replication.outcome == 'success') + run: | + export PG_CONFIG=~/psql/bin/pg_config + export PG_SRC=~/work/postgresql_modified_for_babelfish + export cmake=$(which cmake) + cd contrib + for ext in babelfishpg_common babelfishpg_money babelfishpg_tds babelfishpg_tsql + do + cd $ext + /usr/bin/lcov --gcov-tool /usr/bin/gcov -q --no-external -c -d . -d ./ -o lcov_test.info + cd .. + done + shell: bash + + - name: Summarize code coverage + id: code-coverage-summary + if: always() && steps.generate-code-coverage.outcome == 'success' + run: | + cd contrib/ + lcov -a babelfishpg_tsql/lcov_test.info -a babelfishpg_tds/lcov_test.info -a babelfishpg_common/lcov_test.info -a babelfishpg_money/lcov_test.info -o jdbc-lcov.info + lcov --list jdbc-lcov.info + + - name: Upload Coverage Report for Babelfish Extensions + if: always() && steps.code-coverage-summary.outcome == 'success' + uses: actions/upload-artifact@v3 + with: + name: coverage-babelfish-extensions-jdbc + path: contrib/jdbc-lcov.info + retention-days: 1 diff --git a/test/JDBC/expected/jtds-nvarchar-max-length-check2.out b/test/JDBC/expected/jtds-nvarchar-max-length-check2.out new file mode 100644 index 00000000000..d265b731f61 --- /dev/null +++ b/test/JDBC/expected/jtds-nvarchar-max-length-check2.out @@ -0,0 +1,29 @@ + + +drop table if exists jtds_nvarchar_max_tab2 + +create table jtds_nvarchar_max_tab2 (a int, b nvarchar(max)) +prepst#!# insert into jtds_nvarchar_max_tab2(a, b) values (?, ?) #!#INT|-|a|-|3#!#NVARCHAR|-|b|-|foo +~~ROW COUNT: 1~~ + +prepst#!#exec#!#INT|-|a|-|2048#!#NVARCHAR|-|b|-|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 +~~ROW COUNT: 1~~ + +prepst#!#exec#!#INT|-|a|-|4096#!#NVARCHAR|-|b|-|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 +~~ERROR (Code: 8016)~~ + +~~ERROR (Message: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 3 (""): Data type 0x63 has an invalid data length or metadata length. Server SQLState: S1000)~~ + +prepst#!#exec#!#INT|-|a|-|8192#!#NVARCHAR|-|b|-|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 +~~ERROR (Code: 8016)~~ + +~~ERROR (Message: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 3 (""): Data type 0x63 has an invalid data length or metadata length. Server SQLState: S1000)~~ + + +select a, length(b) from jtds_nvarchar_max_tab2 order by a +~~START~~ +int#!#int +3#!#3 +2048#!#2048 +~~END~~ + diff --git a/test/JDBC/input/jtds/jtds-nvarchar-max-length-check2.txt b/test/JDBC/input/jtds/jtds-nvarchar-max-length-check2.txt new file mode 100644 index 00000000000..e3600bc7b79 --- /dev/null +++ b/test/JDBC/input/jtds/jtds-nvarchar-max-length-check2.txt @@ -0,0 +1,11 @@ + + +drop table if exists jtds_nvarchar_max_tab2 + +create table jtds_nvarchar_max_tab2 (a int, b nvarchar(max)) +prepst#!# insert into jtds_nvarchar_max_tab2(a, b) values (@a, @b) #!#INT|-|a|-|3#!#NVARCHAR|-|b|-|foo +prepst#!#exec#!#INT|-|a|-|2048#!#NVARCHAR|-|b|-|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 +prepst#!#exec#!#INT|-|a|-|4096#!#NVARCHAR|-|b|-|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 +prepst#!#exec#!#INT|-|a|-|8192#!#NVARCHAR|-|b|-|CwC9lGfFdBoXGDQfzPHISmKOJR9z4BVyBNo4anvKdchqqk828v1TgozdyFwFB7u75aMqbmm3CGBjjyhfxBVBCGgWA6xJJOHgCuSJS2SMl6vlrnGJ494Dz5sopAVjVrB0zWNsTJMFJ3f7KMT6rX1AOBJ6Z0yHICepVdV4TcwRUFURapbE3esugDUdYwB76TverStyHS6WVMNhqGS7lPwcX1yFgtghygXZ4GoONDX4o3zoS2beprk3WUDwjjeeZJaspjwt861IlhU57qD3QUxcO2oDhBZnuZNKE86ni7ExcBZNshDlVG8FG8ZXItwUMShiJjtRE3B5GtAcrFKDITbVhwgIeIV4GE5YgcmsmcbWrL9B0GN0VDJv1h5fDh45AePxSSjwff4fdIYZQDaWIcd634aRSz8FDekykGM1iMnzdrqifoJIlXPolifbya4aeNrm14Ccl9F0uHYJ2Nuzz0BG9IUgy5XruanyTmht8kfWRHntsBy0EcwAQRvoGgY9QBL2t17rFqCw15g2RLkXiLLq5WgFiv2knFYwH3jEq9TjfGXybYexPcb0m5CqibLrmkAvnI5WymSh3FtvsYTinuVwxEooW2y0R8Qhx6LPVUdpGYRcCC0KKhrV5ikAZUYtrOMGWaY2c0WJY6SofMTYsSqy2nrGG7hkYOt3yfOUMJlj8gdhc8dAbYwjCNmBXmNihpOWxDKbgx5ZVKTMdoA2XKNz0VE5KSqSgYvrclGJsU0iI4flYX3Ak2Eteem2yicXfLOCpQpjNBMObgIrNWcvXZ32oLIacywe29TwQp2VDlrbxuriE5hddKnXXBuDB8pdtPpEqeI2hyLbtGMSvh1kGB8cMjal6o5POj8mh5SBobMNfMoZDqDjfvgt4NSjBDUHWzfyDAM2RiRkfGKpWeFpluAMaoj3HyyroyknSHlyOPkJmJkVrWnPQdLHwfhsMUBm187O4OfmLzEz1csbiX70IUJUBugfIDVtLWMt4vNyDSFRitD1vQzZxMeFgVzZKAHF3Oj5k0tYrIi5RPhhyhZTHLbVsEElIJlbgoIgTto23kJKdZ25df0upZNzp5UeY9rRmxY1v1aX7ffPbvh0W7Q5JcDowD3MhCy3UAmzw2uCzrozapPxMOy8WFrrsLNEH8iE4ALfA4fJ4wKUAB7LUBG9PyluUazi9HCdXLjYBu6bufa7gjf8krzbFNDUaMj0QJ5sxRQlY4EtW1HECwBPQnS4Npl5KOIg9BUFkdD0A2XOeRokMeU4I7mHnI8NsYi44Aajj65SKGWCDKwEpO8AWntO3ZVxd4FDCQJ707c7vJsYp2ah44z19jWTgRJZy5pkUIILVFpDcF9RmU9iVzF4XY4OQxrNT4LhxaCncRbwOkj8nQSdQ5n2VqhiJZMO9txMR0KwTx620d3QtWngSDPyoMeA3uEO9oBfugqaq9ueaEYhP4ZVhlLvTaEPD7BKwD9aN36BLxuoMXnLkOraBalWBPY8LjRMBJW0GHLe3aEE2nynw7GhPLY956TXxkxBE5DSnijqLVQSdhVDpIR8zXmZPghtjRlGaBHqqRLkBGSBj20ul15tXld7QKLCLhE00INt9DZSU8jyPhZkd1UXVP5BAcC43neRBWsAMUr3BvKjV8GhM4iDwSteEkzIEWs69Av2NYSx6ifASfbHJVBwgIpIimICLyFWZLrk9tZz5Ngu896PFCIaiONHzEh2NsHwNmmyVakM866yIAaT5C7fBVoi8lQpzlWcDZQ5lNNmelqpN4LLSbrjhXlQmmuFHehmuzxw6wTa7hH4FRXVgeTxXVT9vVrXQQHMVqew490ddJ8U4RpwTygxAhs3EoV4rXexCSScn6J8Crkf1hUxFgPuxjQmHBEHquTNWkQIVXUz1JXWpkHGVBv6HHskYWs6cWy5is5U7DwYPASo5GfBDDWNY6L9gMbpJiybu2kunfPcduOChd80fJKRk3Sj10oVTcA9rJG3OrsBkVI3ULsWi8nr3SoQ6fIUpX08S9PjCN52Wj4LeD0PM6ZpJCa5mDia8qU7OEKh9UgqRIemtTRNfyi6cMomFG5YIkX6KEudEniCHfRtUz4HVMvucBZSSg8x1GEUDlcuVRAsXh2zDwZWnyQURyrNOGAir6Mra37yEhkIZjsDwVvhEdKFNibJbQT082lDJyEHxb0IsJURaoA8Q05fbhwnFuikdB0h7NwQl4g6Yk7XDRMUFjYi04uFy8gaL1PpKkGakxWcrWij2EluhajPL0ZHOX2H1UjdFwoh3WUN6zdxa5mlDOWooQCBw7jfajjseTjOSMFGBCAHBMHFRw6FoAyMXW20JkcYpbouNnx3MT1n6QFD3OLNGbFrSifHsnDykr6y3lO78vCOI4Q2s4GCHQG66KAI2mjw04h5qmUmderqe4CQRKsy3Pq5DhZCooGYzLkFDwSXAcBUgnRaAgKK1cTyQfCmfKmMti98jyHbAortJUWTVs4mZUGyYfEXHZd7hMAaLICWA4esUHfpwCwJs62aDkc0URnihNvHKCCYBaljvpdrtkeoSKAHY61ycx87AnwgY98eEobtVcEr6STRupOusA3Cf37F7aGFDDcStvxL9NElITzol7MhrINn34VXuzAvozFZwo9xsnR4hQi0LfcNAKuFQiV0hhTe7HgXEUHt5yUlWDLQ3cfG5oZobBbuAuADPlJeOuWM76SIEiQaaKwXRstihzS0YDaR8zIpMM56un1s1oGDOOFeoLL2mKnhEzTByivIcKbKjVuChbFkNDd7MTK5kj3gFJxfyDnsEHEEhYeJ8ck4IQCN89GVoUD5mnpgiiZorkKmGzEC70ZmhLgfK4H45enKk78Cau6iAVKQeJgZHFUmkiLeV1WGruAodiszOzYElRjjSfU3Rksl1GUOQHPogD4z0JLM9lBGgCXOsP7yc9GVlh4nDEsVheAHH0ZMdTL8mqfI20a6K8SElZre0ulnqzhakbPz31QlbIWdNoU3WSjdv6luPfknNrqxO9Psyjhf1ilSBlTMtfCo9LxZi3XMZNmwZzAvH09ACKScCKZ8ZrXrVike8B8LEKfWxGKkmWUdk1V5fSYVoT38gbU9s7i31IjzWjhHROI7TlNh2jmXpdXy9BvaC3ysCvpXjFbE0A1wKkxBTAR6jF1mzbr5JYCdQb53lmIVTKKkg9EnExBVBb36vbJDkrxeItfpsPMZVi7CwtP5uT9CfdBFKSU2DBTwQMmWxyoeQBQiIJePY7YvSg6yeqB6r1PqdwCJ3M9bJMYvSxlm7iJXBIvKYJ81kGjJiMC7O3Fj14FPPiKRpbwI4RKFWNLD9DClnEAlZcVtujC7v7lxdwJrvRf4x8EgvxWPJw38lvT876nVzo6RrZSqkeSka4jGfywRRF04F4pTn88URsu8LDn5FCl2xFTX3kmjcstatfo4KVucILFsI3p8pxINvOFBu2KOAY7KbdLc0elzJ7nO6wjlW6cVAuVLTGL020iKoF5UvZWxpF8yxST2TkllnFkwRnxn9tz19oM5n6UYPi39YmU9ka6qJ8XUanbGb9Ee1zOaNTlO0tWWCxZxITDbaZIfEb0I4kNB6tShbaaxljOty1IQo4eOmuTEzIqwacP8VhhfHxF7uqWhm9JYUmUEd0kVD1n86YRZsMSyAkS1bUhHo4Qpgeeidol18xfX1IaIw3Wfde0paIfF7OXUyjvZTstWtbEWuekA5U3Bthkz49dLObSGE2ln9zUFqUaFLJVgXGXXBfvY8OqNYXJ8p8Lj9bWhu0PaQfOtvOHYL6jCjVyBYkrvoilAI4Wfk8b2TljHlHoThaeYSyZ2gJTG7Q4So3xvFQiiWWZDlvpSSHfht9XU2kJcNx2ePM9XyCfUMhjxbuojcEJe9NlebMbzrBzTVMoI8AQxZznNL96BgXQCk0pYTuUWlt4Ie3mXlOtSU8EUBB88oASvmXSyYiyPuykxD8Tt2hMzjgcbrn90Z9D2GS7hFaq6Rtw3mXbt0BBymc4WlBPa7eBqCR2scu6blwB3URNRiCKNx51y2khHyRRl7RSGdmmt1Twe4wZ31OEmyNGcG7GPuP3OAtlwo19TFYcVWh1Vyd8bBDsw92bSF9yXDJuqbAy00yqTeCDOIc0QZSYVqgB3mvCtUBHmZlc3Uf4ndicNch2CryEPbtfPDZc75FdZ8nAAKafTuOdlPhqA9k8AhEhPDDFcS9q2buEQMboSrXIVuiznIOxG4pcXI5iDSVhh9o8keS1XytpKTQgnRw2wbUV8pn8kvm52clRjYdNH8kZHOeHYxOUcqTqbGpiZ8yi3Tibptauqs0KaazIMv9qwJBamUXOvs8iwQX74EL31vUBPVlHH7fX7jG2THoNDCAXyPLvcYJoITIXTHXhLNW1fxV0GdhW3S3FAljHJMvowKOjaWwg5LVRnEQJrwVzKotUUG6GLKIN23ZcRKAkt9wZeE70xUO20Na5qduvY64L9McszfNHOaoop9GP9iyj8WB9orvKhLnaPP2iILuarOtiZCC48B7Uh3opSSogYOvZCrnQkD9unUWNUMtzAgX3TpT412dI3u2SwRtVUVrtAkg0a00HmjnH033o8G6dvCEn6ZPVGJjCodRzUjZ9u9kXJPWGiItoKYENZcM877fY5GxyHLiQwn1suznd27I0nIeq2P5HPrKIlCGRj2BYAlwKi1wNlgdd1EL030SziuUIbJk9GBg464oig9i4kGsFvsGNWCyYFNQdqDLV0Ih98FS34foWKOvUDTGN3DA9ktCZEus2f0zZACMHVwIjOWy3FNKtGZapYQRCkgV9YbLFDHcXvQQTfDTuFUVfvo8b7KEvxTq8PqB2mu4fNSXcoCDCuukEd5lyZizfVgJOx4SxgKjST2IwZ3cIPZGgqWWYvjtEO3B8WHXIJtpaiCGLhQr95P9QijWjGvRE3sGTa5d6C6qtWmPMIIU7maYfB1nneXGrVo4yyFcloYBUHKdetQF6ZhWopLDQtYDmU2Ivtg0StgAzWRqLQeWo2PL7lcCzikE6MxJ12LxRV1b7Zr5DClCaIdjsGwRkd5sTJqiaSGxCJcGNSmfOv45SElXharf4Ept8VZzjQP2LXrvHf2rbOL1mM9JaCX2JwIeaDKlHuGDlur61gtr2EjxI5idmeOLgcBEl1KWpYSyzggDpq08PI2OHA4me0UmsA6n6JZFajkmzx9KnCmwbT4GP9NLMOleclwTzCBiyA7pDh5D2MOQAMumTbPx4vtRoftb15hGSZN2ITERqHaHqHpEbhNNK5dC0bkIGOzd12VOn852u9ShAZpeMHsfViRSV6awlH5z7E1v697gVp3lobqsS1v8OP1DDDKj7xORhmeyBH3bNrOofuaJlpNrSMIiXAC4tIL62F0VqN757cVtqfcuLcyTu24c4wRRyLbattoYDU6HNabTdDL3zJetHOldjF0RlDRwxFVbFQpE1zTL9xlPf9NKHE1zoXluEepVvniyfuhBVmzTx5cWqgtZs6YevqlXI6MRHLLr4d6FlH61Ohs0OI7sHeQReZT9NozYeEg1IAtK47ImAXT7jM62E1JcKgltlBvTNxJwubvxFOZ2vPhNHPQIXDWrOjICFe911KIfRGpZfMd4IX5NWr0TFVPJc5JtZ8F1Vi7n6amj7EncFSiIcYLSH80zmet8QnfpcLmPTv8TVbAHOL17qGmMid9lhju94kM2NPZYZfnLusUxgRSaRV7tzyCgQhpsbBnnrrp20qAlCJTsvTUAP2r1itaKBpSV5gb6m2WK0Lbsv2d2sarKcQHhOIc7ieV2x0LcYlXv7dpAjW4mZcaYISZncl8ynlEJXkEQncOaYXGamJ1tI1BbkDJxrUeHx8xwX5RUBExQkvP7UWsJrVhf4iTN9ceqoXZ4kvOApS2fjpR1ajso7UsXQbHbD9PH7FAhbWlOH7crAk8ORbQQaXs9ZVU6pvcbazQWs8Baxc51YjLMLhUigJznh3jODKzBkcvYd7X0yJt39OD2JrkEiipBHC3PfB2Z6Oao6ucrWzFGys74l2VJAvK141ckIa6L5HGicqo5Z8H8IKlt5ZbqHTxyeM8GHiVqou8cSODd5QXkdCuA6xdQTW1PBMuuvfzywvURsT2gekBiHxCs2S47O2LT7gdZD0DQP57HESWY7G04xleN2TkljchDaYflCEvptTx0gS1oBsQjW9fgdlWVTonIWnbFI6pI93QluGcm23R1hl2QlgjmsdQHLhSppbUp1VyLT0V6ihrPlQn9SjuruCCfIAdPEqI3fViNluRyEk2iKv9QXZq787X6sebPU2RK8mhVOstr2rEptYRsbFva1kNsHuQ5eiC7edeiMynl9Dn4M2BRIgR4xN30sKs1Fq7t3NZs70E3eBgkzGN8eSCHLytUSsDCO8RjhvtfmB9LOMrhJBwaAwT0WYxjvRvSDzGZaHEsAQtaZVbPN9Tbmx0yjVqNZCPzZ7TefZl0TinH9BDkSNmQE8N92BBCqAsNhMFghTsI5hNDTIYXq5G5z3cY3LATtMbQWl76hdrEYIdusetLZWcO2q3vsvwWTS0nBB9CRapHcATd0sAsnPUpm7WoS05OGT1hpc7R6KyPJJ0gcy87ZUrwC2YNPe6qPjMpXOrNCo9PYr7uta0kzZgAzFbFvKCC9fp6Hm9mW08FPYTAwsVGIj41vGvRyYcjjNUrV18CABW2A6esrYA4Zmo4czmKL6M7oQ8V7Se4cTw3mz2di64SNgcqzK23vm9vcBEc8rSoQLzlvW75Y2sQJvzitBfVe3McecaZrEYzP0zSl9t6Nz2Dc7h4FGs9iKkeXvGLiFIdjn8P83qfHbr3yKeePYVdfgvNgzkaxmZCbSCN2jMpUM3kqhFJPkuZx7AshGN6AZOZ92aoOsJtXyUGYXJW6iZRI90DAMdAunHTmxXtyFyix2aXgoYN11IkL7ogEcbzxC0HNjRZGvEXhRB2hLFhbXNikCEN8u4pa9UrCScnrM9ILgOkhDaRr6AzIDG2gEYQyCE6BqUjhgyVijmlU4fOyLnhKeLjRPvzpA8ukYbM7q1cSir2aMuh0OJprCcsurUX2mDwbVaoC7FqyueJBeAiUxZJeAKgLYQ7jlBh5KWulSaqDhTVeA9DhwM0WiG0v2QhbSIAEIAOYaRwqLUSIzye7FyKGTIzhQ81KoPiKwNnwpcaGUmvQ8PqKNkyZnMdWa6xTwwT15H6ELn5bZNBWAS6nzYwjnTTQkztzbTslqlaQYckicaNroBXlQoFe20nhJWKBjwoPpVhoue2vmAbYul3CBUmnfK7dTzYduDoJ4cZtNvESLthBuCuX8wGUB8j6CdJw69U29ezBgcUyY6Y9qY04QYmMDibJrE2RqGIdlZRMfrz80X2SWsszEpKogI2QwuSIcpkqpReJUHW1CcQtv0S1zf0tCN1WDP9xeHaHnbihZOyx1bjiwvgkm5FxIYnatBTDnC3mp92jxYZmTuw6N5vA0PakVBzS53ogRpFLt6eUB9BDRyFnGOa7HOXZsSQCdojaldgQMcwHzs1ZO84Mg0INIp0g794OiKomyPwBqeQvEyKg6eJKl4Xhq5TGnK5id5OBgFfw8xTZXQTNZYfMX6QjhCa8ashnG7QpvBUbLIc4z1H5uGl7QzNRIshAvnedcGGopqgHKgdra7oquaEAd8OdlL1zMRaFj9At2HnShtGtlwr7HZfZsjmizMnxznU5JzWQRqYILN6cDtpCf250M2rMGhaU45QWdD8RSjjDFL8ECnczzNxsM6Lft4C349vVBSxjxxVoIWuM8mmFc3UqQVfaIfIFm850yj6FYxVhXJMqDBpoUAbZR7tkhrVH6LjWqxdYDB2TSHRkd9sOzb6Y8Cye3JIs66Nj7Cd8bsfRsDl6yAuwIJCV24ATao9oX3EBDMxygeuM5ganD8FDIcofGxXNJ7vWJQmBuXEcV8S6fg3UgUapmeB3kQ3YiM5K1RxnIMDleNOmrpkgPfoR1kdUAQTIo6RzFL8Sg5tJpmuAFd0CrHGlaqBWnmKRSVbk4y8fBelrfOIIAMP6I3jcSkczMcVHs9NNKUafu6klHsG8MxTYu82fPbuVcXqAkwvM8Caj8j3PEdLywRPMBrxs6PjZ2Dkauf4EHYnUFS3BmARHE6KZILj3d9hpzaceZBgPRkM6ilupEtwcLf6rR7GLZqRt3ixgYzuKuzKwaelP68xAq95KwOnlcBgF4C7Phsgch + +select a, length(b) from jtds_nvarchar_max_tab2 order by a \ No newline at end of file diff --git a/test/JDBC/jdbc_schedule b/test/JDBC/jdbc_schedule index dcc253fe239..cab3765be31 100644 --- a/test/JDBC/jdbc_schedule +++ b/test/JDBC/jdbc_schedule @@ -222,3 +222,4 @@ ignore#!#BABEL-4279-vu-cleanup # These tests are for JTDS driver ignore#!#jtds-varchar-max-length-check ignore#!#jtds-nvarchar-max-length-check +ignore#!#jtds-nvarchar-max-length-check2 diff --git a/test/JDBC/jtds_jdbc_schedule b/test/JDBC/jtds_jdbc_schedule index 703cc1e437b..6765cf8e50a 100644 --- a/test/JDBC/jtds_jdbc_schedule +++ b/test/JDBC/jtds_jdbc_schedule @@ -5,3 +5,4 @@ TestBinary jtds-varchar-max-length-check jtds-nvarchar-max-length-check +jtds-nvarchar-max-length-check2