static Boolean requiresTransaction(boolean transactionalReads, RelationalNode node) { Boolean requiresTxn = node.requiresTransaction(transactionalReads); if (Boolean.TRUE.equals(requiresTxn)) { return true; } boolean last = true; for (RelationalNode child : node.getChildren()) { if (child == null) { continue; } Boolean childRequires = requiresTransaction(transactionalReads, child); if (Boolean.TRUE.equals(childRequires)) { return true; } if (childRequires == null) { if (requiresTxn == null) { return true; } requiresTxn = null; last = true; } else { last = false; } } if (requiresTxn == null && !last) { return true; } return requiresTxn; }
static Boolean requiresTransaction(boolean transactionalReads, RelationalNode node) { Boolean requiresTxn = node.requiresTransaction(transactionalReads); if (Boolean.TRUE.equals(requiresTxn)) { return true; } boolean last = true; for (RelationalNode child : node.getChildren()) { if (child == null) { continue; } Boolean childRequires = requiresTransaction(transactionalReads, child); if (Boolean.TRUE.equals(childRequires)) { return true; } if (childRequires == null) { if (requiresTxn == null) { return true; } requiresTxn = null; last = true; } else { last = false; } } if (requiresTxn == null && !last) { return true; } return requiresTxn; }
static Boolean requiresTransaction(boolean transactionalReads, RelationalNode node) { Boolean requiresTxn = node.requiresTransaction(transactionalReads); if (Boolean.TRUE.equals(requiresTxn)) { return true; } boolean last = true; for (RelationalNode child : node.getChildren()) { if (child == null) { continue; } Boolean childRequires = requiresTransaction(transactionalReads, child); if (Boolean.TRUE.equals(childRequires)) { return true; } if (childRequires == null) { if (requiresTxn == null) { return true; } requiresTxn = null; last = true; } else { last = false; } } if (requiresTxn == null && !last) { return true; } return requiresTxn; }
@Override public Boolean requiresTransaction(boolean transactionalReads) { if (this.with != null) { for (WithQueryCommand withCommand : this.with) { if (withCommand.isRecursive()) { SetQuery setQuery = (SetQuery)withCommand.getCommand(); Boolean leftRequires = setQuery.getLeftQuery().getProcessorPlan().requiresTransaction(transactionalReads); Boolean rightRequires = setQuery.getLeftQuery().getProcessorPlan().requiresTransaction(transactionalReads); if (!Boolean.FALSE.equals(leftRequires) || !Boolean.FALSE.equals(rightRequires)) { return true; } } else { Boolean requires = withCommand.getCommand().getProcessorPlan().requiresTransaction(transactionalReads); if (!Boolean.FALSE.equals(requires)) { return true; } } } } return requiresTransaction(transactionalReads, root); }
@Override public Boolean requiresTransaction(boolean transactionalReads) { if (this.with != null) { for (WithQueryCommand withCommand : this.with) { if (withCommand.isRecursive()) { SetQuery setQuery = (SetQuery)withCommand.getCommand(); Boolean leftRequires = setQuery.getLeftQuery().getProcessorPlan().requiresTransaction(transactionalReads); Boolean rightRequires = setQuery.getLeftQuery().getProcessorPlan().requiresTransaction(transactionalReads); if (!Boolean.FALSE.equals(leftRequires) || !Boolean.FALSE.equals(rightRequires)) { return true; } } else { Boolean requires = withCommand.getCommand().getProcessorPlan().requiresTransaction(transactionalReads); if (!Boolean.FALSE.equals(requires)) { return true; } } } } return requiresTransaction(transactionalReads, root); }
@Override public Boolean requiresTransaction(boolean transactionalReads) { if (this.with != null) { for (WithQueryCommand withCommand : this.with) { if (withCommand.isRecursive()) { SetQuery setQuery = (SetQuery)withCommand.getCommand(); Boolean leftRequires = setQuery.getLeftQuery().getProcessorPlan().requiresTransaction(transactionalReads); Boolean rightRequires = setQuery.getLeftQuery().getProcessorPlan().requiresTransaction(transactionalReads); if (!Boolean.FALSE.equals(leftRequires) || !Boolean.FALSE.equals(rightRequires)) { return true; } } else { Boolean requires = withCommand.getCommand().getProcessorPlan().requiresTransaction(transactionalReads); if (!Boolean.FALSE.equals(requires)) { return true; } } } } return requiresTransaction(transactionalReads, root); }