Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e83d883
feat: introduce DatabaseCapability interface to define database featu…
otaviojava Apr 19, 2026
958f9bb
chore: add package declaration to DatabaseCapability.java
otaviojava Apr 19, 2026
7a2bafc
feat: add AbstractDatabaseCapability base class with default conserva…
otaviojava Apr 19, 2026
dd3b7e1
feat: add KeyValueCapability class with conservative profile for key-…
otaviojava Apr 19, 2026
cbe148c
feat: add ColumnCapability class with conservative profile for column…
otaviojava Apr 19, 2026
54335f3
feat: add DocumentCapability class with conservative profile for docu…
otaviojava Apr 19, 2026
f8907f5
feat: add GraphCapability class with conservative profile for graph d…
otaviojava Apr 19, 2026
b18156e
refactor: remove redundant comments from GraphCapability class
otaviojava Apr 19, 2026
786d2dc
feat: add RelationalCapability class with comprehensive profile for r…
otaviojava Apr 19, 2026
b3429b1
refactor: remove redundant class-level comments from capability profi…
otaviojava Apr 19, 2026
bfa133d
refactor: rename AbstractDatabaseCapability to MinimalDatabaseCapability
otaviojava Apr 19, 2026
47f66e2
refactor: remove redundant class-level comments from MinimalDatabaseC…
otaviojava Apr 19, 2026
4cdea61
refactor: update capability classes to extend MinimalDatabaseCapabili…
otaviojava Apr 19, 2026
73b4cfa
refactor: delegate DatabaseType capability checks to DatabaseCapabili…
otaviojava Apr 19, 2026
b374390
refactor: update RelationalCapability to implement DatabaseCapability…
otaviojava Apr 19, 2026
dfe5ba7
refactor: make RelationalCapability non-final to allow subclassing
otaviojava Apr 19, 2026
a12b3fe
feat: add TimeSeriesCapability class with full predicate support
otaviojava Apr 19, 2026
8918d0d
chore: update copyright year and add package declaration to TimeSerie…
otaviojava Apr 19, 2026
c9c4142
refactor: reformat capability method overrides for clarity and consis…
otaviojava Apr 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/*
* Copyright (c) 2026 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package ee.jakarta.tck.data.framework.utilities;

/**
* Capability profile for Column-oriented databases based on the current behavior model.
*
* <p>In the existing model, column databases introduce basic comparison and
* filtering capabilities beyond simple key-based access. This includes support for range queries, null checks, and
* inclusion-based filtering.</p>
*
* <p>More advanced features such as arithmetic operations, string manipulation,
* sorting, and conditional updates are not assumed to be supported at this level.</p>
*
* <p><strong>Note:</strong> Actual support may vary depending on the specific
* implementation (e.g., wide-column vs analytical column stores), but this profile reflects the conservative baseline
* defined in the current TCK behavior.</p>
*/
public final class ColumnCapability extends MinimalDatabaseCapability {

@Override
public boolean capableOfBetween() {
return true;
}

@Override
public boolean capableOfGreaterThan() {
return true;
}

@Override
public boolean capableOfGreaterThanEqual() {
return true;
}

@Override
public boolean capableOfIn() {
return true;
}

@Override
public boolean capableOfLessThan() {
return true;
}

@Override
public boolean capableOfLessThanEqual() {
return true;
}

@Override
public boolean capableOfNotBetween() {
return true;
}

@Override
public boolean capableOfNotEqual() {
return true;
}

@Override
public boolean capableOfNotIn() {
return true;
}

@Override
public boolean capableOfNotNull() {
return true;
}

@Override
public boolean capableOfNull() {
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/*
* Copyright (c) 2026 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package ee.jakarta.tck.data.framework.utilities;
/**
* Defines the capability profile of a database family or provider.
*
* <p>This interface represents what operations and expressions are expected
* to be supported by a given database type. Implementations should document
* nuances such as partial support, vendor-specific behavior, or limitations.</p>
*
* <p><strong>Important:</strong> A {@code true} value indicates expected support,
* but does not guarantee uniform behavior across all vendors of the same family.</p>
*/
public interface DatabaseCapability {

boolean capableOfAddition();

boolean capableOfAnd();

boolean capableOfAssignmentToExpression();

boolean capableOfBetween();

boolean capableOfAttributeVsAttributeComparison();

boolean capableOfConcat();

boolean capableOfConditionalDelete();

boolean capableOfConditionalUpdate();

boolean capableOfConstraintsOnNonIdAttributes();

boolean capableOfCount();

boolean capableOfCountingDeletes();

boolean capableOfCountingUpdates();

boolean capableOfDivision();

boolean capableOfGreaterThan();

boolean capableOfGreaterThanEqual();

boolean capableOfIn();

boolean capableOfLeft();

boolean capableOfLength();

boolean capableOfLessThan();

boolean capableOfLessThanEqual();

boolean capableOfLike();

boolean capableOfLower();

boolean capableOfMultipleSort();

boolean capableOfMultiplication();

boolean capableOfNotBetween();

boolean capableOfNotEqual();

boolean capableOfNotIn();

boolean capableOfNotLike();

boolean capableOfNotNull();

boolean capableOfNull();

boolean capableOfOr();

boolean capableOfParentheses();

boolean capableOfQueryWithoutWhere();

boolean capableOfRight();

boolean capableOfSingleSort();

boolean capableOfSubtraction();

boolean capableOfUpper();
}
Loading