public SelectQueryAttributeExtractor2(DBMetadata metadata, TermFactory termFactory) { this.metadata = metadata; this.idfac = metadata.getQuotedIDFactory(); this.termFactory = termFactory; }
public SelectQueryParser(DBMetadata metadata, TermFactory termFactory, TypeFactory typeFactory) { this.metadata = metadata; this.idfac = metadata.getQuotedIDFactory(); this.termFactory = termFactory; this.typeFactory = typeFactory; }
public SelectQueryAttributeExtractor2(DBMetadata metadata) { this.metadata = metadata; this.idfac = metadata.getQuotedIDFactory(); }
public SelectQueryParser(DBMetadata metadata) { this.metadata = metadata; this.idfac = metadata.getQuotedIDFactory(); }
public SelectQueryAttributeExtractor(DBMetadata metadata, TermFactory termFactory) { this.idfac = metadata.getQuotedIDFactory(); sqae = new SelectQueryAttributeExtractor2(metadata, termFactory); }
public SelectQueryAttributeExtractor(DBMetadata metadata) { this.idfac = metadata.getQuotedIDFactory(); sqae = new SelectQueryAttributeExtractor2(metadata); }
private Optional<DatabaseRelationDefinition> getDatabaseRelationByName(DBMetadata dbMetadata, AtomPredicate predicate) { RelationID relationId = Relation2Predicate.createRelationFromPredicateName(dbMetadata.getQuotedIDFactory(), predicate); return Optional.ofNullable(dbMetadata.getRelation(relationId)) /** * Here we only consider DB relations */ .filter(r -> r instanceof DatabaseRelationDefinition) .map(r -> (DatabaseRelationDefinition) r); } }
@Override public boolean isVariableNullable(IntermediateQuery query, Variable variable) { if (!getVariables().contains(variable)) throw new IllegalArgumentException("The variable " + variable + " is not projected by " + this); DBMetadata metadata = query.getDBMetadata(); DataAtom atom = getProjectionAtom(); RelationID relationId = Relation2Predicate.createRelationFromPredicateName( metadata.getQuotedIDFactory(), atom.getPredicate()); RelationDefinition relation = metadata.getRelation(relationId); if (relation == null) throw new MissingRelationForExtensionalDataNodeException("Bug: required relation for " + this + " not found"); ImmutableList<? extends VariableOrGroundTerm> arguments = atom.getArguments(); // NB: DB column indexes start at 1. return IntStream.range(1, arguments.size() + 1) .filter(i -> arguments.get(i - 1).equals(variable)) .mapToObj(relation::getAttribute) .allMatch(Attribute::canNull); }
RelationID tableId = relation2Predicate.createRelationFromPredicateName(metadata.getQuotedIDFactory(), predicate); Optional<RelationDefinition> td = Optional.ofNullable(metadata.getRelation(tableId));
OneShotSQLGeneratorEngine(DBMetadata metadata, IRIDictionary iriDictionary, OntopReformulationSQLSettings settings, JdbcTypeMapper jdbcTypeMapper, IntermediateQuery2DatalogTranslator iq2DatalogTranslator) { String driverURI = settings.getJdbcDriver() .orElseGet(() -> { try { return DriverManager.getDriver(settings.getJdbcUrl()).getClass().getCanonicalName(); } catch (SQLException e) { // TODO: find a better exception throw new RuntimeException("Impossible to get the JDBC driver. Reason: " + e.getMessage()); } }); if (!(metadata instanceof RDBMetadata)) { throw new IllegalArgumentException("Not a DBMetadata!"); } this.metadata = (RDBMetadata)metadata; this.idFactory = metadata.getQuotedIDFactory(); this.sqladapter = SQLAdapterFactory.getSQLDialectAdapter(driverURI, this.metadata.getDbmsVersion(), settings); this.operations = buildOperations(sqladapter); this.distinctResultSet = settings.isDistinctPostProcessingEnabled(); this.iq2DatalogTranslator = iq2DatalogTranslator; this.isIRISafeEncodingEnabled = settings.isIRISafeEncodingEnabled(); this.uriRefIds = iriDictionary; this.jdbcTypeMapper = jdbcTypeMapper; }
RelationID tableId = Relation2Predicate.createRelationFromPredicateName(metadata.getQuotedIDFactory(), predicate); Optional<RelationDefinition> td = Optional.ofNullable(metadata.getRelation(tableId));
RelationID tableId = Relation2Predicate.createRelationFromPredicateName(metadata.getQuotedIDFactory(), predicate); Optional<RelationDefinition> td = Optional.ofNullable(metadata.getRelation(tableId));
@Override protected Optional<PredicateLevelProposal> proposePerPredicate(InnerJoinNode joinNode, ImmutableCollection<DataNode> initialNodes, AtomPredicate predicate, DBMetadata dbMetadata, ImmutableList<Variable> priorityVariables, IntermediateQuery query) throws AtomUnificationException { if (initialNodes.size() < 2) return Optional.empty(); RelationID relationId = Relation2Predicate.createRelationFromPredicateName( dbMetadata.getQuotedIDFactory(), predicate); DatabaseRelationDefinition databaseRelation = dbMetadata.getDatabaseRelation(relationId); /* * Does nothing */ if (databaseRelation == null) return Optional.empty(); ImmutableMap<FunctionalDependency, ImmutableCollection<Collection<DataNode>>> constraintNodeMap = databaseRelation.getOtherFunctionalDependencies().stream() .collect(ImmutableCollectors.toMap( c -> c, c -> groupDataNodesPerConstraint(c, initialNodes))); ImmutableSet<Variable> requiredAndCooccuringVariables = extractRequiredAndCooccuringVariables(query, joinNode); ImmutableSet<DataNode> nodesToRemove = selectNodesToRemove(requiredAndCooccuringVariables, constraintNodeMap, predicate); ImmutableList<ImmutableSubstitution<VariableOrGroundTerm>> dependentUnifiers = extractDependentUnifiers( databaseRelation, constraintNodeMap, nodesToRemove); return (dependentUnifiers.isEmpty() && nodesToRemove.isEmpty()) ? Optional.empty() : Optional.of(new PredicateLevelProposal(dependentUnifiers, nodesToRemove)); }
RelationID tableId = relation2Predicate.createRelationFromPredicateName(metadata.getQuotedIDFactory(), ip.atom .getFunctionSymbol()); RelationDefinition td = metadata.getRelation(tableId);
RelationID tableId = Relation2Predicate.createRelationFromPredicateName(metadata.getQuotedIDFactory(), ip.atom .getFunctionSymbol()); RelationDefinition td = metadata.getRelation(tableId);
QuotedIDFactory idfac = metadata.getQuotedIDFactory();
QuotedIDFactory idfac = md.getQuotedIDFactory(); int counter = 0; // id of the generated constraint
QuotedIDFactory idfac = md.getQuotedIDFactory(); int counter = 0; // id of the generated constraint
QuotedIDFactory idfac = md.getQuotedIDFactory(); int counter = 0; // id of the generated constraint
/** * Retrieves the foreign keys for the table * */ private static void getForeignKeys(DatabaseMetaData md, DatabaseRelationDefinition relation, DBMetadata metadata) throws SQLException { QuotedIDFactory idfac = metadata.getQuotedIDFactory(); RelationID relationId = relation.getID(); try (ResultSet rs = md.getImportedKeys(null, relationId.getSchemaName(), relationId.getTableName())) { extractForeignKeys(relation, metadata, idfac, rs); } catch (Exception ex) { try (ResultSet rs = md.getImportedKeys(relationId.getSchemaName(),null, relationId.getTableName())) { extractForeignKeys(relation, metadata, idfac, rs); } } }