@Override public int compare(SQLUniqueConstraint o1, SQLUniqueConstraint o2) { int keyNameComp = o1.getUk_name().compareTo(o2.getUk_name()); if (keyNameComp == 0) { return Integer.compare(o1.getKey_seq(), o2.getKey_seq()); } return keyNameComp; } });
public UniqueConstraint(List<SQLUniqueConstraint> uks, String tableName, String databaseName) { this.tableName = tableName; this.databaseName = databaseName; uniqueConstraints = new TreeMap<String, List<UniqueConstraintCol>>(); if (uks == null) { return; } for (SQLUniqueConstraint uk : uks) { if (uk.getTable_db().equalsIgnoreCase(databaseName) && uk.getTable_name().equalsIgnoreCase(tableName)) { UniqueConstraintCol currCol = new UniqueConstraintCol( uk.getColumn_name(), uk.getKey_seq()); String constraintName = uk.getUk_name(); if (uniqueConstraints.containsKey(constraintName)) { uniqueConstraints.get(constraintName).add(currCol); } else { List<UniqueConstraintCol> currList = new ArrayList<UniqueConstraintCol>(); currList.add(currCol); uniqueConstraints.put(constraintName, currList); } } } }
uk.getColumn_name(), getColumnFromTableColumns(tableCols, uk.getColumn_name()).getType())); if (j + 1 < refTableUniqueConstraints.size()) { if (!refTableUniqueConstraints.get(j + 1).getUk_name().equals( refTableUniqueConstraints.get(j).getUk_name())) { validPKsOrUnique.add(ukSignature.toString()); ukSignature = new StringBuilder();
List<SQLUniqueConstraint> uniqueConstraintCols = req.getUniqueConstraintCols(); String constraintName = (uniqueConstraintCols != null && uniqueConstraintCols.size() > 0) ? uniqueConstraintCols.get(0).getUk_name() : "null"; startFunction("add_unique_constraint", ": " + constraintName); boolean success = false; if (uniqueConstraintCols.get(i).getUk_name() == null) { uniqueConstraintCols.get(i).setUk_name(constraintNames.get(i));
if (uks.get(i).getUk_name() == null) { if (uks.get(i).getKey_seq() == 1) { constraintName = generateConstraintName(tableDB, tableName, columnName, "uk"); constraintName = normalizeIdentifier(uks.get(i).getUk_name()); if(constraintNameAlreadyExists(constraintName)) { throw new InvalidObjectException("Constraint name already exists: " + constraintName);
public Object getFieldValue(_Fields field) { switch (field) { case CAT_NAME: return getCatName(); case TABLE_DB: return getTable_db(); case TABLE_NAME: return getTable_name(); case COLUMN_NAME: return getColumn_name(); case KEY_SEQ: return getKey_seq(); case UK_NAME: return getUk_name(); case ENABLE_CSTR: return isEnable_cstr(); case VALIDATE_CSTR: return isValidate_cstr(); case RELY_CSTR: return isRely_cstr(); } throw new IllegalStateException(); }
uniqueConstraintSize = uniqueConstraints.size(); for (int i = 0; i < uniqueConstraintSize; i++) { if (uniqueConstraints.get(i).getUk_name() == null) { uniqueConstraints.get(i).setUk_name(constraintNames.get(primaryKeySize + foreignKeySize + i));
Assert.assertEquals("col1", fetched.get(0).getColumn_name()); Assert.assertEquals(1, fetched.get(0).getKey_seq()); Assert.assertEquals(table.getTableName() + "_unique_constraint", fetched.get(0).getUk_name()); String tablePkName = fetched.get(0).getUk_name(); Assert.assertTrue(fetched.get(0).isEnable_cstr()); Assert.assertFalse(fetched.get(0).isValidate_cstr());
Assert.assertEquals("col1", fetched.get(0).getColumn_name()); Assert.assertEquals(1, fetched.get(0).getKey_seq()); Assert.assertEquals(table.getTableName() + "_unique_constraint", fetched.get(0).getUk_name()); String table0PkName = fetched.get(0).getUk_name(); Assert.assertTrue(fetched.get(0).isEnable_cstr()); Assert.assertFalse(fetched.get(0).isValidate_cstr());
@Test public void uniqueConstraint() throws TException { String constraintName = "ocuc"; // Table in non 'hive' catalog List<SQLUniqueConstraint> uc = new SQLUniqueConstraintBuilder() .onTable(testTables[2]) .addColumn("test_col1") .setConstraintName(constraintName) .build(conf); client.addUniqueConstraint(uc); UniqueConstraintsRequest rqst = new UniqueConstraintsRequest(testTables[2].getCatName(), testTables[2].getDbName(), testTables[2].getTableName()); List<SQLUniqueConstraint> fetched = client.getUniqueConstraints(rqst); Assert.assertEquals(1, fetched.size()); Assert.assertEquals(testTables[2].getDbName(), fetched.get(0).getTable_db()); Assert.assertEquals(testTables[2].getTableName(), fetched.get(0).getTable_name()); Assert.assertEquals("test_col1", fetched.get(0).getColumn_name()); Assert.assertEquals(1, fetched.get(0).getKey_seq()); Assert.assertEquals(constraintName, fetched.get(0).getUk_name()); Assert.assertTrue(fetched.get(0).isEnable_cstr()); Assert.assertFalse(fetched.get(0).isValidate_cstr()); Assert.assertFalse(fetched.get(0).isRely_cstr()); Assert.assertEquals(testTables[2].getCatName(), fetched.get(0).getCatName()); Assert.assertEquals(expectedCatalog(), fetched.get(0).getCatName()); client.dropConstraint(testTables[2].getDbName(), testTables[2].getTableName(), constraintName); rqst = new UniqueConstraintsRequest(testTables[2].getCatName(), testTables[2].getDbName(), testTables[2].getTableName()); fetched = client.getUniqueConstraints(rqst); Assert.assertTrue(fetched.isEmpty()); }
@Test public void inOtherCatalog() throws TException { String constraintName = "ocuc"; // Table in non 'hive' catalog List<SQLUniqueConstraint> uc = new SQLUniqueConstraintBuilder() .onTable(testTables[2]) .addColumn("col1") .setConstraintName(constraintName) .build(metaStore.getConf()); client.addUniqueConstraint(uc); UniqueConstraintsRequest rqst = new UniqueConstraintsRequest(testTables[2].getCatName(), testTables[2].getDbName(), testTables[2].getTableName()); List<SQLUniqueConstraint> fetched = client.getUniqueConstraints(rqst); Assert.assertEquals(1, fetched.size()); Assert.assertEquals(testTables[2].getDbName(), fetched.get(0).getTable_db()); Assert.assertEquals(testTables[2].getTableName(), fetched.get(0).getTable_name()); Assert.assertEquals("col1", fetched.get(0).getColumn_name()); Assert.assertEquals(1, fetched.get(0).getKey_seq()); Assert.assertEquals(constraintName, fetched.get(0).getUk_name()); Assert.assertTrue(fetched.get(0).isEnable_cstr()); Assert.assertFalse(fetched.get(0).isValidate_cstr()); Assert.assertFalse(fetched.get(0).isRely_cstr()); Assert.assertEquals(testTables[2].getCatName(), fetched.get(0).getCatName()); client.dropConstraint(testTables[2].getCatName(), testTables[2].getDbName(), testTables[2].getTableName(), constraintName); rqst = new UniqueConstraintsRequest(testTables[2].getCatName(), testTables[2].getDbName(), testTables[2].getTableName()); fetched = client.getUniqueConstraints(rqst); Assert.assertTrue(fetched.isEmpty()); }
Assert.assertEquals("col1", fetched.get(0).getColumn_name()); Assert.assertEquals(1, fetched.get(0).getKey_seq()); Assert.assertEquals(constraintName, fetched.get(0).getUk_name()); Assert.assertTrue(fetched.get(0).isEnable_cstr()); Assert.assertFalse(fetched.get(0).isValidate_cstr());
Assert.assertEquals("col5", ucFetched.get(0).getColumn_name()); Assert.assertEquals(1, ucFetched.get(0).getKey_seq()); Assert.assertEquals(table.getTableName() + "_unique_constraint", ucFetched.get(0).getUk_name()); Assert.assertTrue(ucFetched.get(0).isEnable_cstr()); Assert.assertFalse(ucFetched.get(0).isValidate_cstr());
@Override public int compare(SQLUniqueConstraint o1, SQLUniqueConstraint o2) { int keyNameComp = o1.getUk_name().compareTo(o2.getUk_name()); if (keyNameComp == 0) { return Integer.compare(o1.getKey_seq(), o2.getKey_seq()); } return keyNameComp; } });
uk.getColumn_name(), getColumnFromTableColumns(tableCols, uk.getColumn_name()).getType())); if (j + 1 < refTableUniqueConstraints.size()) { if (!refTableUniqueConstraints.get(j + 1).getUk_name().equals( refTableUniqueConstraints.get(j).getUk_name())) { validPKsOrUnique.add(ukSignature.toString()); ukSignature = new StringBuilder();
List<SQLUniqueConstraint> uniqueConstraintCols = req.getUniqueConstraintCols(); String constraintName = (uniqueConstraintCols != null && uniqueConstraintCols.size() > 0) ? uniqueConstraintCols.get(0).getUk_name() : "null"; startFunction("add_unique_constraint", ": " + constraintName); boolean success = false; if (uniqueConstraintCols.get(i).getUk_name() == null) { uniqueConstraintCols.get(i).setUk_name(constraintNames.get(i));
if (uks.get(i).getUk_name() == null) { if (uks.get(i).getKey_seq() == 1) { constraintName = generateConstraintName(tableDB, tableName, columnName, "uk"); constraintName = normalizeIdentifier(uks.get(i).getUk_name()); if(constraintNameAlreadyExists(constraintName)) { throw new InvalidObjectException("Constraint name already exists: " + constraintName);
public Object getFieldValue(_Fields field) { switch (field) { case CAT_NAME: return getCatName(); case TABLE_DB: return getTable_db(); case TABLE_NAME: return getTable_name(); case COLUMN_NAME: return getColumn_name(); case KEY_SEQ: return getKey_seq(); case UK_NAME: return getUk_name(); case ENABLE_CSTR: return isEnable_cstr(); case VALIDATE_CSTR: return isValidate_cstr(); case RELY_CSTR: return isRely_cstr(); } throw new IllegalStateException(); }
uniqueConstraintSize = uniqueConstraints.size(); for (int i = 0; i < uniqueConstraintSize; i++) { if (uniqueConstraints.get(i).getUk_name() == null) { uniqueConstraints.get(i).setUk_name(constraintNames.get(primaryKeySize + foreignKeySize + i));