You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2019/07/13 08:50:28 UTC
[empire-db] branch master updated: EMPIREDB-282: removed
unnecessary validation checks
This is an automated email from the ASF dual-hosted git repository.
doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git
The following commit(s) were added to refs/heads/master by this push:
new 028ecd4 EMPIREDB-282: removed unnecessary validation checks
028ecd4 is described below
commit 028ecd48aafcda7cd6c06c96bfbffe948dbeb3a0
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Sat Jul 13 10:50:22 2019 +0200
EMPIREDB-282: removed unnecessary validation checks
---
.../main/java/org/apache/empire/db/DBRecord.java | 26 +++++++++++++++++++++-
.../main/java/org/apache/empire/db/DBRowSet.java | 10 ++++-----
.../main/java/org/apache/empire/db/DBTable.java | 2 +-
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
index 7224fff..c499c60 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
@@ -596,6 +596,30 @@ public class DBRecord extends DBRecordData implements Record, Cloneable
if (fireChangeEvent)
onFieldChanged(i);
}
+
+ /**
+ * validates all modified values of a record
+ */
+ public void validateAllValues()
+ {
+ if (!this.isValid())
+ throw new ObjectNotValidException(this);
+ // Modified
+ if (modified == null)
+ return; // nothing to do
+ // check for field
+ for (int index=0; index<fields.length; index++)
+ { // Modified or No value?
+ if (modified[index]==false || fields[index]==ObjectUtils.NO_VALUE)
+ continue;
+ // Auto-generated ?
+ DBColumn column = rowset.getColumn(index);
+ if (column.isAutoGenerated())
+ continue;
+ // validate this one
+ fields[index] = validateValue(column, fields[index]);
+ }
+ }
/**
* Sets the value of the column in the record.
@@ -627,7 +651,7 @@ public class DBRecord extends DBRecordData implements Record, Cloneable
throw new FieldIsReadOnlyException(column);
}
// Is Value valid
- if (validateFieldValues)
+ if (this.validateFieldValues)
value = validateValue(column, value);
// Init original values
modifyValue(index, value, true);
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
index 505761d..8e31f47 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
@@ -754,9 +754,9 @@ public abstract class DBRowSet extends DBExpr
}
// Add the value to the command
if (empty==false)
- { // Check the value
- if (col.isAutoGenerated()==false && rec.isValidateFieldValues())
- col.validate(value);
+ { // *** unnecessary check removed 2.5.0 ***
+ // if (col.isAutoGenerated()==false && rec.isValidateFieldValues())
+ // col.validate(value);
// Insert a field
cmd.set(col.to(value));
setCount++;
@@ -813,8 +813,8 @@ public abstract class DBRowSet extends DBExpr
{ // Update a field
if (col.isReadOnly())
log.warn("updateRecord: Read-only column '" + col.getName() + " has been modified!");
- // Check the value
- col.validate(value);
+ // *** unnecessary check removed 2.5.0 ***
+ // col.validate(value);
// Set the column
cmd.set(col.to(value));
setCount++;
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBTable.java b/empire-db/src/main/java/org/apache/empire/db/DBTable.java
index ad40e0d..aab8283 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBTable.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBTable.java
@@ -225,7 +225,7 @@ public class DBTable extends DBRowSet implements Cloneable
protected DBTableColumn crateAndAppendColumn(String columnName, DataType type, double size, boolean required, Object defValue)
{
// Make sure (DataType.INTEGER & DataMode.AutoGenerated) = DataType.AUTOINC
- boolean autoGenerated = (type==DataType.AUTOINC);
+ boolean autoGenerated = (type==DataType.AUTOINC || type==DataType.UNIQUEID);
DBTableColumn column = new DBTableColumn(this, type, columnName, size, required, autoGenerated, defValue);
addColumn(column);
// auto-set primary key