* fix: allow validateFieldNames in AggregateAction to see implicit join tables This involved constructing a JoinsContext inside the validation method - which (as it originally should have been) was moved out of QueryAction, into new SelectionValidationHelper. * fix(joinsContext): throw explicit exception if a QueryJoin has an unrecognized table name * fix(query): for query's usage of SelectionValidationHelper, require that queryJoin objects are marked as for being selected; avoid NPE on null join table. * feat(cloning): give default implementation (e.g., no longer abstract) for finishClone, to help with backward compat ability * refactor: delete unused code * test(insertAction): Add assertion about inserted-ids being put on newly inserted associated records This change was added in previous commits in this branch on InsertAction, so this gets some test coverage in on it as well. * fix(queryAction): clone the queryJoins that are passed into the JoinsContext in SelectionValidationHelper too, so it should not be able to impact anything (since apparently it has side effects all over the place).
qqq-backend-module-rdbms
This is a backend-module for the qqq framework - specifically, one that works with an RDBMS using direct JDBC.
License
QQQ - Low-code Application Framework for Engineers.
Copyright (C) 2022. Kingsrook, LLC
651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
contact@kingsrook.com | https://github.com/Kingsrook/
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.