Added 'scrubbing' of values being used in query filters. removed unused param from scrubValue method

This commit is contained in:
2023-10-16 08:31:25 -05:00
parent 14d0d18045
commit af852b0612
3 changed files with 13 additions and 7 deletions

View File

@ -149,7 +149,7 @@ public abstract class AbstractRDBMSAction implements QActionInterface
** and type conversions that we can do "better" than jdbc...
**
*******************************************************************************/
protected Serializable scrubValue(QFieldMetaData field, Serializable value, boolean isInsert)
protected Serializable scrubValue(QFieldMetaData field, Serializable value)
{
if("".equals(value))
{
@ -724,9 +724,10 @@ public abstract class AbstractRDBMSAction implements QActionInterface
throw new IllegalArgumentException("Incorrect number of values given for criteria [" + field.getName() + "]");
}
//////////////////////////////////////////////////////////////
// replace any expression-type values with their evaluation //
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// replace any expression-type values with their evaluation //
// also, "scrub" non-expression values, which type-converts them (e.g., strings in various supported date formats become LocalDate) //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ListIterator<Serializable> valueListIterator = values.listIterator();
while(valueListIterator.hasNext())
{
@ -735,6 +736,11 @@ public abstract class AbstractRDBMSAction implements QActionInterface
{
valueListIterator.set(expression.evaluate());
}
else
{
Serializable scrubbedValue = scrubValue(field, value);
valueListIterator.set(scrubbedValue);
}
}
}

View File

@ -135,7 +135,7 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
for(QFieldMetaData field : insertableFields)
{
Serializable value = record.getValue(field.getName());
value = scrubValue(field, value, true);
value = scrubValue(field, value);
params.add(value);
}
}

View File

@ -214,7 +214,7 @@ public class RDBMSUpdateAction extends AbstractRDBMSAction implements UpdateInte
for(String fieldName : fieldsBeingUpdated)
{
Serializable value = record.getValue(fieldName);
value = scrubValue(table.getField(fieldName), value, false);
value = scrubValue(table.getField(fieldName), value);
rowValues.add(value);
}
rowValues.add(record.getValue(table.getPrimaryKeyField()));
@ -286,7 +286,7 @@ public class RDBMSUpdateAction extends AbstractRDBMSAction implements UpdateInte
for(String fieldName : fieldsBeingUpdated)
{
Serializable value = record0.getValue(fieldName);
value = scrubValue(table.getField(fieldName), value, false);
value = scrubValue(table.getField(fieldName), value);
params.add(value);
}