Adalennis opened a new pull request, #9143:
URL: https://github.com/apache/hop/pull/9143
Addresses #8970
Ninth batch: a Result section on the pages of Bulk load into MySQL, Bulk
load from MySQL into file and Bulk load into MSSQL.
Every row comes from a hop-run test against the current code (55 workflows,
MySQL 8.4 and SQL Server 2022 in Docker, with the test folder mounted at the
same path on the host and in the containers, tables and files recreated before
each test). Each action was also run after an action that is true with 2 errors
(they pass on 0 errors), and with a previous result holding files and rows, on
success and on failure. What the tests show:
- Bulk load from MySQL into file fails with its default settings on MySQL
8.4: High Priority is checked by default, the action always adds LOCK IN SHARE
MODE, and MySQL rejects both together ("Table ... appears in multiple locking
clauses"). With High Priority unchecked, the export works. Documented as a NOTE.
- Bulk load from MySQL into file with a connection that doesn't exist in the
project throws a NullPointerException out of execute(): the workflow stops and
no hop is followed.
- Bulk load into MSSQL is false with 0 errors (the reason is logged as an
error) for a non-MSSQL connection, an empty field terminator with char or
widechar, and an existing error file without Add date time.
- Bulk load into MSSQL: SQL Server on Linux only accepts the RAW codepage,
so the default OEM fails there. Specific sends the word 'Specific' instead of
the Specific codepage value (visible in the logged SQL). With both Start at
line and End at line set, only LASTROW is sent. A conversion error on row 2
left row 1 loaded.
- Bulk load into MySQL: Local (checked by default) needs
allowLoadLocalInfile=true on the connection. Replace data off keeps the
existing row on a duplicate key.
- In both MySQL actions, a missing table is false with 1 error, but the
reason is only logged at the Detailed level.
- All three add the file to the result files only when they succeed.
Also fixed:
- Bulk load from MySQL into file: Source schema (was Target schema), the
missing Source table row, what OUTFILE / DUMPFILE and each If file exists
option do, and what High Priority does.
- Bulk load into MySQL: what Local, Replace data and Ignore the...first
lines do; labels Ignore the...first lines, Add file to result filenames.
- Bulk load into MSSQL: labels Data File, Row terminated by; the Codepage
list (ACP, OEM (default), RAW, Specific).
Found while testing (not reported yet): the High Priority failure, the
NullPointerException, the three false-with-0-errors paths, the Specific
codepage value and Start at line being dropped. The last three are documented
as NOTEs.
------------------------
Thank you for your contribution! Follow this checklist to help us
incorporate your contribution quickly and easily:
- [x] Run `mvn clean install apache-rat:check` to make sure basic checks
pass. A more thorough check will be performed on your pull request
automatically.
- [x] If you have a group of commits related to the same change, please
squash your commits into one and force push your branch using `git rebase -i`.
- [x] Mention the appropriate issue in your description (for example:
`addresses #123`), if applicable.
To make clear that you license your contribution under the [Apache License
Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
you have to acknowledge this by using the following check-box.
- [x] I hereby declare this contribution to be licensed under the [Apache
License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
- [ ] In any other case, please file an [Apache Individual Contributor
License Agreement](https://www.apache.org/licenses/icla.pdf).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]