Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Update rule change
Created
5 years ago
Diff never expires
Clear
Export
Share
Explain
16 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
60 lines
Copy
12 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
58 lines
Copy
Copy
Copied
Copy
Copied
@Value.Immutable
public interface Config extends RelRule.Config {
public interface Config extends RelRule.Config {
Copy
Copied
Copy
Copied
Config DEFAULT =
EMPTY.as(Config.class
)
Config DEFAULT =
ImmutableProjectFilterTransposeRule.of(
)
.withOperandFor(LogicalProject.class, LogicalFilter.class)
.withOperandFor(LogicalProject.class, LogicalFilter.class)
.withPreserveExprCondition(expr -> false)
.withPreserveExprCondition(expr -> false)
.withWholeProject(false)
.withWholeProject(false)
.withWholeFilter(false);
.withWholeFilter(false);
Config PROJECT = DEFAULT.withWholeProject(true);
Config PROJECT = DEFAULT.withWholeProject(true);
Config PROJECT_FILTER = PROJECT.withWholeFilter(true);
Config PROJECT_FILTER = PROJECT.withWholeFilter(true);
@Override default ProjectFilterTransposeRule toRule() {
@Override default ProjectFilterTransposeRule toRule() {
return new ProjectFilterTransposeRule(this);
return new ProjectFilterTransposeRule(this);
}
}
/** Expressions that should be preserved in the projection. */
/** Expressions that should be preserved in the projection. */
Copy
Copied
Copy
Copied
@ImmutableBeans.Property
PushProjector.ExprCondition preserveExprCondition();
PushProjector.ExprCondition preserveExprCondition();
/** Sets {@link #preserveExprCondition()}. */
/** Sets {@link #preserveExprCondition()}. */
Config withPreserveExprCondition(PushProjector.ExprCondition condition);
Config withPreserveExprCondition(PushProjector.ExprCondition condition);
/** Whether to push whole expressions from the project;
/** Whether to push whole expressions from the project;
* if false (the default), only pushes references. */
* if false (the default), only pushes references. */
Copy
Copied
Copy
Copied
@
ImmutableBeans.Property
@
Value.
Default
default
boolean isWholeProject()
{
@ImmutableBeans.Boolean
Default
(false)
return false;
boolean isWholeProject()
;
}
/** Sets {@link #isWholeProject()}. */
/** Sets {@link #isWholeProject()}. */
Config withWholeProject(boolean wholeProject);
Config withWholeProject(boolean wholeProject);
/** Whether to push whole expressions from the filter;
/** Whether to push whole expressions from the filter;
* if false (the default), only pushes references. */
* if false (the default), only pushes references. */
Copy
Copied
Copy
Copied
@
ImmutableBeans.Property
@
Value.
Default
default
boolean isWholeFilter()
{
@ImmutableBeans.Boolean
Default
(false)
return false;
boolean isWholeFilter()
;
}
/** Sets {@link #isWholeFilter()}. */
/** Sets {@link #isWholeFilter()}. */
Config withWholeFilter(boolean wholeFilter);
Config withWholeFilter(boolean wholeFilter);
/** Defines an operand tree for the given classes. */
/** Defines an operand tree for the given classes. */
default Config withOperandFor(Class<? extends Project> projectClass,
default Config withOperandFor(Class<? extends Project> projectClass,
Class<? extends Filter> filterClass) {
Class<? extends Filter> filterClass) {
return withOperandSupplier(b0 ->
return withOperandSupplier(b0 ->
b0.operand(projectClass).oneInput(b1 ->
b0.operand(projectClass).oneInput(b1 ->
Copy
Copied
Copy
Copied
b1.operand(filterClass).anyInputs()))
b1.operand(filterClass).anyInputs()))
;
.as(Config.class)
;
}
}
/** Defines an operand tree for the given 3 classes. */
/** Defines an operand tree for the given 3 classes. */
default Config withOperandFor(Class<? extends Project> projectClass,
default Config withOperandFor(Class<? extends Project> projectClass,
Class<? extends Filter> filterClass,
Class<? extends Filter> filterClass,
Class<? extends RelNode> inputClass) {
Class<? extends RelNode> inputClass) {
return withOperandSupplier(b0 ->
return withOperandSupplier(b0 ->
b0.operand(projectClass).oneInput(b1 ->
b0.operand(projectClass).oneInput(b1 ->
b1.operand(filterClass).oneInput(b2 ->
b1.operand(filterClass).oneInput(b2 ->
Copy
Copied
Copy
Copied
b2.operand(inputClass).anyInputs())))
b2.operand(inputClass).anyInputs())))
;
.as(Config.class)
;
}
}
}
}
Saved diffs
Original text
Open file
public interface Config extends RelRule.Config { Config DEFAULT = EMPTY.as(Config.class) .withOperandFor(LogicalProject.class, LogicalFilter.class) .withPreserveExprCondition(expr -> false) .withWholeProject(false) .withWholeFilter(false); Config PROJECT = DEFAULT.withWholeProject(true); Config PROJECT_FILTER = PROJECT.withWholeFilter(true); @Override default ProjectFilterTransposeRule toRule() { return new ProjectFilterTransposeRule(this); } /** Expressions that should be preserved in the projection. */ @ImmutableBeans.Property PushProjector.ExprCondition preserveExprCondition(); /** Sets {@link #preserveExprCondition()}. */ Config withPreserveExprCondition(PushProjector.ExprCondition condition); /** Whether to push whole expressions from the project; * if false (the default), only pushes references. */ @ImmutableBeans.Property @ImmutableBeans.BooleanDefault(false) boolean isWholeProject(); /** Sets {@link #isWholeProject()}. */ Config withWholeProject(boolean wholeProject); /** Whether to push whole expressions from the filter; * if false (the default), only pushes references. */ @ImmutableBeans.Property @ImmutableBeans.BooleanDefault(false) boolean isWholeFilter(); /** Sets {@link #isWholeFilter()}. */ Config withWholeFilter(boolean wholeFilter); /** Defines an operand tree for the given classes. */ default Config withOperandFor(Class<? extends Project> projectClass, Class<? extends Filter> filterClass) { return withOperandSupplier(b0 -> b0.operand(projectClass).oneInput(b1 -> b1.operand(filterClass).anyInputs())) .as(Config.class); } /** Defines an operand tree for the given 3 classes. */ default Config withOperandFor(Class<? extends Project> projectClass, Class<? extends Filter> filterClass, Class<? extends RelNode> inputClass) { return withOperandSupplier(b0 -> b0.operand(projectClass).oneInput(b1 -> b1.operand(filterClass).oneInput(b2 -> b2.operand(inputClass).anyInputs()))) .as(Config.class); } }
Changed text
Open file
@Value.Immutable public interface Config extends RelRule.Config { Config DEFAULT = ImmutableProjectFilterTransposeRule.of() .withOperandFor(LogicalProject.class, LogicalFilter.class) .withPreserveExprCondition(expr -> false) .withWholeProject(false) .withWholeFilter(false); Config PROJECT = DEFAULT.withWholeProject(true); Config PROJECT_FILTER = PROJECT.withWholeFilter(true); @Override default ProjectFilterTransposeRule toRule() { return new ProjectFilterTransposeRule(this); } /** Expressions that should be preserved in the projection. */ PushProjector.ExprCondition preserveExprCondition(); /** Sets {@link #preserveExprCondition()}. */ Config withPreserveExprCondition(PushProjector.ExprCondition condition); /** Whether to push whole expressions from the project; * if false (the default), only pushes references. */ @Value.Default default boolean isWholeProject() { return false; } /** Sets {@link #isWholeProject()}. */ Config withWholeProject(boolean wholeProject); /** Whether to push whole expressions from the filter; * if false (the default), only pushes references. */ @Value.Default default boolean isWholeFilter() { return false; } /** Sets {@link #isWholeFilter()}. */ Config withWholeFilter(boolean wholeFilter); /** Defines an operand tree for the given classes. */ default Config withOperandFor(Class<? extends Project> projectClass, Class<? extends Filter> filterClass) { return withOperandSupplier(b0 -> b0.operand(projectClass).oneInput(b1 -> b1.operand(filterClass).anyInputs())); } /** Defines an operand tree for the given 3 classes. */ default Config withOperandFor(Class<? extends Project> projectClass, Class<? extends Filter> filterClass, Class<? extends RelNode> inputClass) { return withOperandSupplier(b0 -> b0.operand(projectClass).oneInput(b1 -> b1.operand(filterClass).oneInput(b2 -> b2.operand(inputClass).anyInputs()))); } }
Find difference