ttomcat-1778514358873.zip-extract/_dependencies/maven/com.h2database_h2-2.2.220/org/h2/constraint/ConstraintCheck.java

Path
ttomcat-1778514358873.zip-extract/_dependencies/maven/com.h2database_h2-2.2.220/org/h2/constraint/ConstraintCheck.java
Status
scanned
Type
file
Name
ConstraintCheck.java
Extension
.java
Programming language
Java
Mime type
text/x-java
File type
Java source, ASCII text
Tag

      
    
Rootfs path

      
    
Size
4671 (4.6 KB)
MD5
33985b1f119c39e42d420886a9d04bfb
SHA1
908e5a058d1217a0d992a24043f2c3f846127fa5
SHA256
d5178ac6cb05cb30951ba7dc7912d79552965a163502ab0922c49795f3d4a06e
SHA512

      
    
SHA1_git
edac942e1506869c89e7ba90aed8385cd4fba2ce
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
ConstraintCheck.java | 4.6 KB |

/* * Copyright 2004-2023 H2 Group. Multiple-Licensed under the MPL 2.0, * and the EPL 1.0 (https://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.constraint; import java.util.HashSet; import org.h2.api.ErrorCode; import org.h2.engine.SessionLocal; import org.h2.expression.Expression; import org.h2.expression.ExpressionVisitor; import org.h2.index.Index; import org.h2.message.DbException; import org.h2.result.ResultInterface; import org.h2.result.Row; import org.h2.schema.Schema; import org.h2.table.Column; import org.h2.table.Table; import org.h2.table.TableFilter; import org.h2.util.StringUtils; import org.h2.value.Value; /** * A check constraint. */ public class ConstraintCheck extends Constraint { private TableFilter filter; private Expression expr; public ConstraintCheck(Schema schema, int id, String name, Table table) { super(schema, id, name, table); } @Override public Type getConstraintType() { return Constraint.Type.CHECK; } public void setTableFilter(TableFilter filter) { this.filter = filter; } public void setExpression(Expression expr) { this.expr = expr; } @Override public String getCreateSQLForCopy(Table forTable, String quotedName) { StringBuilder buff = new StringBuilder("ALTER TABLE "); forTable.getSQL(buff, DEFAULT_SQL_FLAGS).append(" ADD CONSTRAINT "); if (forTable.isHidden()) { buff.append("IF NOT EXISTS "); } buff.append(quotedName); if (comment != null) { buff.append(" COMMENT "); StringUtils.quoteStringSQL(buff, comment); } buff.append(" CHECK"); expr.getEnclosedSQL(buff, DEFAULT_SQL_FLAGS).append(" NOCHECK"); return buff.toString(); } private String getShortDescription() { StringBuilder builder = new StringBuilder().append(getName()).append(": "); expr.getTraceSQL(); return builder.toString(); } @Override public String getCreateSQLWithoutIndexes() { return getCreateSQL(); } @Override public String getCreateSQL() { return getCreateSQLForCopy(table, getSQL(DEFAULT_SQL_FLAGS)); } @Override public void removeChildrenAndResources(SessionLocal session) { table.removeConstraint(this); database.removeMeta(session, getId()); filter = null; expr = null; table = null; invalidate(); } @Override public void checkRow(SessionLocal session, Table t, Row oldRow, Row newRow) { if (newRow == null) { return; } boolean b; try { Value v; synchronized (this) { filter.set(newRow); v = expr.getValue(session); } // Both TRUE and NULL are ok b = v.isFalse(); } catch (DbException ex) { throw DbException.get(ErrorCode.CHECK_CONSTRAINT_INVALID, ex, getShortDescription()); } if (b) { throw DbException.get(ErrorCode.CHECK_CONSTRAINT_VIOLATED_1, getShortDescription()); } } @Override public boolean usesIndex(Index index) { return false; } @Override public void setIndexOwner(Index index) { throw DbException.getInternalError(toString()); } @Override public HashSet<Column> getReferencedColumns(Table table) { HashSet<Column> columns = new HashSet<>(); expr.isEverything(ExpressionVisitor.getColumnsVisitor(columns, table)); return columns; } @Override public Expression getExpression() { return expr; } @Override public boolean isBefore() { return true; } @Override public void checkExistingData(SessionLocal session) { if (session.getDatabase().isStarting()) { // don't check at startup return; } StringBuilder builder = new StringBuilder().append("SELECT NULL FROM "); filter.getTable().getSQL(builder, DEFAULT_SQL_FLAGS).append(" WHERE NOT "); expr.getSQL(builder, DEFAULT_SQL_FLAGS, Expression.AUTO_PARENTHESES); String sql = builder.toString(); ResultInterface r = session.prepare(sql).query(1); if (r.next()) { throw DbException.get(ErrorCode.CHECK_CONSTRAINT_VIOLATED_1, getName()); } } @Override public void rebuild() { // nothing to do } @Override public boolean isEverything(ExpressionVisitor visitor) { return expr.isEverything(visitor); } }
Detected license expression

      
    
Detected license expression (SPDX)

      
    
Percentage of license text
2.48
Copyrights
- end_line: 2
  copyright: Copyright 2004-2023 H2 Group. Multiple-Licensed
  start_line: 2
Holders
- holder: H2 Group. Multiple-Licensed
  end_line: 2
  start_line: 2
Authors

      
    
License expression License clue details
(mpl-2.0 OR epl-1.0) AND proprietary-license {'score': 20.37, 'matcher': '3-seq', 'end_line': 3, 'rule_url': 'https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mpl-2.0_or_epl-1.0_and_proprietary-license_2.RULE', 'from_file': None, 'start_line': 2, 'matched_text': ' * Copyright 2004-2023 H2 Group. Multiple-Licensed under the MPL 2.0,\n * and the EPL 1.0 (https://h2database.com/html/license.html).', 'match_coverage': 20.37, 'matched_length': 11, 'rule_relevance': 100, 'rule_identifier': 'mpl-2.0_or_epl-1.0_and_proprietary-license_2.RULE', 'license_expression': '(mpl-2.0 OR epl-1.0) AND proprietary-license', 'license_expression_spdx': '(MPL-2.0 OR EPL-1.0) AND LicenseRef-scancode-proprietary-license'}
URL Start line End line
https://h2database.com/html/license.html 3 3
Package URL License Primary language
pkg:osgi/com.h2database.source@2.2.220