From bb0b3e69153c2e1f28e7dbc68962bef25870da71 Mon Sep 17 00:00:00 2001 From: ribeaudc <ribeaudc> Date: Thu, 14 Jun 2007 12:53:17 +0000 Subject: [PATCH] change: - we do not have the pretention to parse each SQL92 command. SVN: 515 --- .../cisd/common/db/DBRestrictions.java | 57 +++++++------------ 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/common/source/java/ch/systemsx/cisd/common/db/DBRestrictions.java b/common/source/java/ch/systemsx/cisd/common/db/DBRestrictions.java index 96711733239..62ad0f9db01 100644 --- a/common/source/java/ch/systemsx/cisd/common/db/DBRestrictions.java +++ b/common/source/java/ch/systemsx/cisd/common/db/DBRestrictions.java @@ -145,22 +145,15 @@ public class DBRestrictions { for (String line : ddlScript) { - if (line.startsWith(CREATE_TABLE_PREFIX)) + final Matcher createTableMatcher = CREATE_TABLE_PATTERN.matcher(line); + if (createTableMatcher.matches()) { - final Matcher createTableMatcher = CREATE_TABLE_PATTERN.matcher(line); - if (createTableMatcher.matches()) + final String tableName = createTableMatcher.group(1); + final String tableDefinition = createTableMatcher.group(2); + final String[] columnDefinitions = StringUtils.split(tableDefinition, ','); + for (String columnDefinition : columnDefinitions) { - final String tableName = createTableMatcher.group(1); - final String tableDefinition = createTableMatcher.group(2); - final String[] columnDefinitions = StringUtils.split(tableDefinition, ','); - for (String columnDefinition : columnDefinitions) - { - parseColumnDefinition(columnDefinition, tableName, domains); - } - } else - { - operationLog.warn("line \"" + line + "\" looks like table definition, but is ill-formed."); - continue; + parseColumnDefinition(columnDefinition, tableName, domains); } } } @@ -201,33 +194,25 @@ public class DBRestrictions { for (String line : ddlScript) { - if (line.startsWith(ALTER_TABLE_PREFIX)) + final Matcher checkedConstraintMatcher = CHECK_CONSTRAINT_PATTERN.matcher(line); + if (checkedConstraintMatcher.matches()) { - - final Matcher checkedConstraintMatcher = CHECK_CONSTRAINT_PATTERN.matcher(line); - if (checkedConstraintMatcher.matches()) + final String tableName = checkedConstraintMatcher.group(1); + final String columnName = checkedConstraintMatcher.group(2); + final String alternativesStr = checkedConstraintMatcher.group(3); + final String[] alternatives = StringUtils.split(alternativesStr, ','); + final Set<String> alternativeSet = new HashSet<String>(); + for (String alternative : alternatives) { - final String tableName = checkedConstraintMatcher.group(1); - final String columnName = checkedConstraintMatcher.group(2); - final String alternativesStr = checkedConstraintMatcher.group(3); - final String[] alternatives = StringUtils.split(alternativesStr, ','); - final Set<String> alternativeSet = new HashSet<String>(); - for (String alternative : alternatives) + if (alternative.charAt(0) != '\'' || alternative.charAt(alternative.length() - 1) != '\'') { - if (alternative.charAt(0) != '\'' || alternative.charAt(alternative.length() - 1) != '\'') - { - operationLog.warn("Invalid alternatives definition \"" + alternative + "\" for column " - + columnName + " of table " + tableName); - continue; - } - alternativeSet.add(alternative.substring(1, alternative.length() - 1)); + operationLog.warn("Invalid alternatives definition \"" + alternative + "\" for column " + + columnName + " of table " + tableName); + continue; } - getTableRestrictions(tableName).checkedConstraintsMap.put(columnName, alternativeSet); - } else - { - operationLog.warn("line \"" + line + "\" looks like constraint definition, but is ill-formed."); - continue; + alternativeSet.add(alternative.substring(1, alternative.length() - 1)); } + getTableRestrictions(tableName).checkedConstraintsMap.put(columnName, alternativeSet); } } } -- GitLab