Apply .gitignore
This commit is contained in:
@@ -37,3 +37,25 @@ List<Operation> rows = dbFunctions.query(
|
||||
Large reports can use `stream(...)` so rows are consumed without retaining the
|
||||
whole result in memory. PostgreSQL cursor fetching is enabled by running reads with
|
||||
auto-commit disabled and the configured fetch size.
|
||||
|
||||
## Dynamic multi-value parameters
|
||||
|
||||
Use a typed array parameter with PostgreSQL `ANY` when the number of values is
|
||||
not known in advance. The cached query remains parameterized:
|
||||
|
||||
```sql
|
||||
select ... where op.description = any(?)
|
||||
```
|
||||
|
||||
```java
|
||||
dbExecutor.query(
|
||||
queryId,
|
||||
new Object[] { portfolioId, SqlArrayParameter.text(descriptions) },
|
||||
Option.class);
|
||||
```
|
||||
|
||||
Factories are available for text, integer, smallint, bigint, numeric, boolean,
|
||||
UUID, date, timestamp and timestamp-with-time-zone arrays. Use
|
||||
`SqlArrayParameter.of(postgresType, values)` for another PostgreSQL scalar or
|
||||
enum type. An empty collection is valid and causes `= ANY(empty_array)` to
|
||||
match no rows.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cygnus.db;
|
||||
|
||||
import java.sql.Array;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
@@ -18,7 +19,11 @@ final class ParameterBinder {
|
||||
}
|
||||
|
||||
private void bind(PreparedStatement statement, int index, Object value) throws SQLException {
|
||||
if (value instanceof SqlParameter parameter) {
|
||||
if (value instanceof SqlArrayParameter parameter) {
|
||||
Array array = statement.getConnection().createArrayOf(
|
||||
parameter.elementType(), parameter.values());
|
||||
statement.setArray(index, array);
|
||||
} else if (value instanceof SqlParameter parameter) {
|
||||
if (parameter.value() == null) statement.setNull(index, parameter.sqlType());
|
||||
else statement.setObject(index, parameter.value(), parameter.sqlType());
|
||||
} else if (value == null) {
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.cygnus.db;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* A typed SQL array parameter for PostgreSQL expressions such as
|
||||
* {@code column_name = ANY(?)}.
|
||||
*/
|
||||
public record SqlArrayParameter(String elementType, Object[] values) {
|
||||
private static final Pattern TYPE_NAME = Pattern.compile(
|
||||
"[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)?");
|
||||
|
||||
public SqlArrayParameter {
|
||||
elementType = Objects.requireNonNull(elementType, "elementType").trim();
|
||||
if (!TYPE_NAME.matcher(elementType).matches()) {
|
||||
throw new IllegalArgumentException("Invalid SQL array element type: " + elementType);
|
||||
}
|
||||
values = Objects.requireNonNull(values, "values").clone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] values() {
|
||||
return values.clone();
|
||||
}
|
||||
|
||||
public static SqlArrayParameter of(String elementType, Object... values) {
|
||||
return new SqlArrayParameter(elementType, values);
|
||||
}
|
||||
|
||||
public static SqlArrayParameter of(String elementType, Collection<?> values) {
|
||||
Objects.requireNonNull(values, "values");
|
||||
return new SqlArrayParameter(elementType, values.toArray());
|
||||
}
|
||||
|
||||
public static SqlArrayParameter text(String... values) { return of("text", (Object[]) values); }
|
||||
public static SqlArrayParameter text(Collection<String> values) { return of("text", values); }
|
||||
public static SqlArrayParameter integer(Integer... values) { return of("integer", (Object[]) values); }
|
||||
public static SqlArrayParameter smallint(Short... values) { return of("smallint", (Object[]) values); }
|
||||
public static SqlArrayParameter bigint(Long... values) { return of("bigint", (Object[]) values); }
|
||||
public static SqlArrayParameter numeric(BigDecimal... values) { return of("numeric", (Object[]) values); }
|
||||
public static SqlArrayParameter bool(Boolean... values) { return of("boolean", (Object[]) values); }
|
||||
public static SqlArrayParameter uuid(UUID... values) { return of("uuid", (Object[]) values); }
|
||||
public static SqlArrayParameter date(LocalDate... values) { return of("date", (Object[]) values); }
|
||||
public static SqlArrayParameter timestamp(LocalDateTime... values) {
|
||||
return of("timestamp", (Object[]) values);
|
||||
}
|
||||
public static SqlArrayParameter timestampWithTimeZone(OffsetDateTime... values) {
|
||||
return of("timestamptz", (Object[]) values);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.cygnus.db;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertSame;
|
||||
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.sql.Array;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class ParameterBinderTest {
|
||||
|
||||
@Test
|
||||
void bindsDynamicTextCollectionAsOneTypedSqlArray() throws Exception {
|
||||
BindingCapture capture = new BindingCapture();
|
||||
|
||||
new ParameterBinder().bind(capture.statement(), new Object[] {
|
||||
SqlArrayParameter.text(List.of("CATEGORY", "PRODUCT"))
|
||||
});
|
||||
|
||||
assertEquals("text", capture.elementType.get());
|
||||
assertArrayEquals(new Object[] {"CATEGORY", "PRODUCT"}, capture.values.get());
|
||||
assertEquals(1, capture.parameterIndex.get());
|
||||
}
|
||||
|
||||
@Test
|
||||
void supportsUuidAndEmptyArrays() throws Exception {
|
||||
UUID id = UUID.randomUUID();
|
||||
BindingCapture uuidCapture = new BindingCapture();
|
||||
new ParameterBinder().bind(uuidCapture.statement(),
|
||||
new Object[] {SqlArrayParameter.uuid(id)});
|
||||
assertEquals("uuid", uuidCapture.elementType.get());
|
||||
assertArrayEquals(new Object[] {id}, uuidCapture.values.get());
|
||||
|
||||
BindingCapture emptyCapture = new BindingCapture();
|
||||
new ParameterBinder().bind(emptyCapture.statement(),
|
||||
new Object[] {SqlArrayParameter.integer()});
|
||||
assertEquals("integer", emptyCapture.elementType.get());
|
||||
assertArrayEquals(new Object[0], emptyCapture.values.get());
|
||||
}
|
||||
|
||||
private static final class BindingCapture {
|
||||
private final AtomicReference<String> elementType = new AtomicReference<>();
|
||||
private final AtomicReference<Object[]> values = new AtomicReference<>();
|
||||
private final AtomicInteger parameterIndex = new AtomicInteger();
|
||||
private final Array sqlArray = proxy(Array.class, (method, args) -> defaultValue(method.getReturnType()));
|
||||
|
||||
PreparedStatement statement() {
|
||||
Connection connection = proxy(Connection.class, (method, args) -> {
|
||||
if (method.getName().equals("createArrayOf")) {
|
||||
elementType.set((String) args[0]);
|
||||
values.set(((Object[]) args[1]).clone());
|
||||
return sqlArray;
|
||||
}
|
||||
return defaultValue(method.getReturnType());
|
||||
});
|
||||
return proxy(PreparedStatement.class, (method, args) -> {
|
||||
if (method.getName().equals("getConnection")) return connection;
|
||||
if (method.getName().equals("setArray")) {
|
||||
parameterIndex.set((Integer) args[0]);
|
||||
assertSame(sqlArray, args[1]);
|
||||
return null;
|
||||
}
|
||||
return defaultValue(method.getReturnType());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T> T proxy(Class<T> type, Handler handler) {
|
||||
return (T) Proxy.newProxyInstance(type.getClassLoader(), new Class<?>[] {type},
|
||||
(proxy, method, args) -> handler.invoke(method, args));
|
||||
}
|
||||
|
||||
private static Object defaultValue(Class<?> type) {
|
||||
if (!type.isPrimitive()) return null;
|
||||
if (type == boolean.class) return false;
|
||||
if (type == byte.class) return (byte) 0;
|
||||
if (type == short.class) return (short) 0;
|
||||
if (type == int.class) return 0;
|
||||
if (type == long.class) return 0L;
|
||||
if (type == float.class) return 0F;
|
||||
if (type == double.class) return 0D;
|
||||
if (type == char.class) return '\0';
|
||||
return null;
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
private interface Handler {
|
||||
Object invoke(java.lang.reflect.Method method, Object[] args) throws Throwable;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
artifactId=cygnus-onprem-db
|
||||
groupId=com.cygnus
|
||||
version=1.0.0-SNAPSHOT
|
||||
@@ -1,25 +0,0 @@
|
||||
com/cygnus/db/RowConsumer.class
|
||||
com/cygnus/db/RowView.class
|
||||
com/cygnus/db/QueryDefinitionException.class
|
||||
com/cygnus/db/QueryDefinitionProvider.class
|
||||
com/cygnus/db/CygnusDbExecutor.class
|
||||
com/cygnus/db/SqlParameter.class
|
||||
com/cygnus/db/ObjectRowMapperFactory$RecordMetadata.class
|
||||
com/cygnus/db/JdbcCygnusDbExecutor.class
|
||||
com/cygnus/db/JdbcCygnusDbExecutor$SqlWork.class
|
||||
com/cygnus/db/QueryDefinition.class
|
||||
com/cygnus/db/QueryType.class
|
||||
com/cygnus/db/ObjectRowMapperFactory$TypeMetadata.class
|
||||
com/cygnus/db/TransactionCallback.class
|
||||
com/cygnus/db/RowMapper.class
|
||||
com/cygnus/db/ObjectRowMapperFactory.class
|
||||
com/cygnus/db/DatabaseExecutionException.class
|
||||
com/cygnus/db/ObjectRowMapperFactory$FieldBinding.class
|
||||
com/cygnus/db/TransactionOperations.class
|
||||
com/cygnus/db/ValueConverter.class
|
||||
com/cygnus/db/ExecutorOptions.class
|
||||
com/cygnus/db/DbResult.class
|
||||
com/cygnus/db/ParameterBinder.class
|
||||
com/cygnus/db/ObjectRowMapperFactory$BeanMetadata.class
|
||||
com/cygnus/db/JdbcCygnusDbExecutor$TransactionOperationsImpl.class
|
||||
com/cygnus/db/ImmutableRowView.class
|
||||
@@ -1,19 +0,0 @@
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/CygnusDbExecutor.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/DatabaseExecutionException.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/DbResult.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/ExecutorOptions.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/ImmutableRowView.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/JdbcCygnusDbExecutor.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/ObjectRowMapperFactory.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/ParameterBinder.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/QueryDefinition.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/QueryDefinitionException.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/QueryDefinitionProvider.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/QueryType.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/RowConsumer.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/RowMapper.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/RowView.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/SqlParameter.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/TransactionCallback.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/TransactionOperations.java
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/main/java/com/cygnus/db/ValueConverter.java
|
||||
@@ -1,2 +0,0 @@
|
||||
com/cygnus/db/JdbcCygnusDbExecutorTest.class
|
||||
com/cygnus/db/JdbcCygnusDbExecutorTest$Person.class
|
||||
@@ -1 +0,0 @@
|
||||
/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/src/test/java/com/cygnus/db/JdbcCygnusDbExecutorTest.java
|
||||
@@ -1,68 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.2" name="com.cygnus.db.JdbcCygnusDbExecutorTest" time="0.124" tests="5" errors="0" skipped="0" failures="0">
|
||||
<properties>
|
||||
<property name="java.specification.version" value="25"/>
|
||||
<property name="sun.jnu.encoding" value="UTF-8"/>
|
||||
<property name="java.class.path" value="/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/test-classes:/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/classes:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter/5.12.2/junit-jupiter-5.12.2.jar:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.12.2/junit-jupiter-api-5.12.2.jar:/Users/maddy/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/maddy/.m2/repository/org/junit/platform/junit-platform-commons/1.12.2/junit-platform-commons-1.12.2.jar:/Users/maddy/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.12.2/junit-jupiter-params-5.12.2.jar:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.12.2/junit-jupiter-engine-5.12.2.jar:/Users/maddy/.m2/repository/org/junit/platform/junit-platform-engine/1.12.2/junit-platform-engine-1.12.2.jar:/Users/maddy/.m2/repository/com/h2database/h2/2.3.232/h2-2.3.232.jar:"/>
|
||||
<property name="java.vm.vendor" value="Homebrew"/>
|
||||
<property name="sun.arch.data.model" value="64"/>
|
||||
<property name="java.vendor.url" value="https://github.com/Homebrew/homebrew-core/issues"/>
|
||||
<property name="user.timezone" value="Asia/Kolkata"/>
|
||||
<property name="os.name" value="Mac OS X"/>
|
||||
<property name="java.vm.specification.version" value="25"/>
|
||||
<property name="sun.java.launcher" value="SUN_STANDARD"/>
|
||||
<property name="user.country" value="US"/>
|
||||
<property name="sun.boot.library.path" value="/opt/homebrew/Cellar/openjdk/25.0.2/libexec/openjdk.jdk/Contents/Home/lib"/>
|
||||
<property name="sun.java.command" value="/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/surefire/surefirebooter-20260801204254090_6.jar /Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/surefire 2026-08-01T20-42-53_787-jvmRun1 surefire-20260801204254090_4tmp surefire_1-20260801204254090_5tmp"/>
|
||||
<property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
|
||||
<property name="jdk.debug" value="release"/>
|
||||
<property name="surefire.test.class.path" value="/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/test-classes:/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/classes:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter/5.12.2/junit-jupiter-5.12.2.jar:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.12.2/junit-jupiter-api-5.12.2.jar:/Users/maddy/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/maddy/.m2/repository/org/junit/platform/junit-platform-commons/1.12.2/junit-platform-commons-1.12.2.jar:/Users/maddy/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.12.2/junit-jupiter-params-5.12.2.jar:/Users/maddy/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.12.2/junit-jupiter-engine-5.12.2.jar:/Users/maddy/.m2/repository/org/junit/platform/junit-platform-engine/1.12.2/junit-platform-engine-1.12.2.jar:/Users/maddy/.m2/repository/com/h2database/h2/2.3.232/h2-2.3.232.jar:"/>
|
||||
<property name="sun.cpu.endian" value="little"/>
|
||||
<property name="user.home" value="/Users/maddy"/>
|
||||
<property name="user.language" value="en"/>
|
||||
<property name="java.specification.vendor" value="Oracle Corporation"/>
|
||||
<property name="java.version.date" value="2026-01-20"/>
|
||||
<property name="java.home" value="/opt/homebrew/Cellar/openjdk/25.0.2/libexec/openjdk.jdk/Contents/Home"/>
|
||||
<property name="file.separator" value="/"/>
|
||||
<property name="basedir" value="/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db"/>
|
||||
<property name="java.vm.compressedOopsMode" value="Zero based"/>
|
||||
<property name="line.separator" value=" "/>
|
||||
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
|
||||
<property name="java.specification.name" value="Java Platform API Specification"/>
|
||||
<property name="apple.awt.application.name" value="ForkedBooter"/>
|
||||
<property name="surefire.real.class.path" value="/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db/target/surefire/surefirebooter-20260801204254090_6.jar"/>
|
||||
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
|
||||
<property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
|
||||
<property name="java.runtime.version" value="25.0.2"/>
|
||||
<property name="user.name" value="maddy"/>
|
||||
<property name="stdout.encoding" value="UTF-8"/>
|
||||
<property name="path.separator" value=":"/>
|
||||
<property name="os.version" value="26.5.2"/>
|
||||
<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
|
||||
<property name="file.encoding" value="UTF-8"/>
|
||||
<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
|
||||
<property name="java.vendor.version" value="Homebrew"/>
|
||||
<property name="localRepository" value="/Users/maddy/.m2/repository"/>
|
||||
<property name="java.vendor.url.bug" value="https://github.com/Homebrew/homebrew-core/issues"/>
|
||||
<property name="java.io.tmpdir" value="/var/folders/1l/36214rdn79755j30lcnmgsqh0000gn/T/"/>
|
||||
<property name="java.version" value="25.0.2"/>
|
||||
<property name="user.dir" value="/Users/maddy/Projects/cygnus/matrix/cygnus-onprem-db"/>
|
||||
<property name="os.arch" value="aarch64"/>
|
||||
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
|
||||
<property name="native.encoding" value="UTF-8"/>
|
||||
<property name="java.library.path" value="/Users/maddy/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
|
||||
<property name="java.vm.info" value="mixed mode, sharing"/>
|
||||
<property name="stderr.encoding" value="UTF-8"/>
|
||||
<property name="java.vendor" value="Homebrew"/>
|
||||
<property name="java.vm.version" value="25.0.2"/>
|
||||
<property name="stdin.encoding" value="UTF-8"/>
|
||||
<property name="sun.io.unicode.encoding" value="UnicodeBig"/>
|
||||
<property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
|
||||
<property name="java.class.version" value="69.0"/>
|
||||
</properties>
|
||||
<testcase name="executesProcedureAndStreamsWithoutMaterializingRows" classname="com.cygnus.db.JdbcCygnusDbExecutorTest" time="0.095"/>
|
||||
<testcase name="executesInsertUpdateDeleteAndGeneratedKeys" classname="com.cygnus.db.JdbcCygnusDbExecutorTest" time="0.004"/>
|
||||
<testcase name="mapsSelectDirectlyToRecordsAndDynamicRows" classname="com.cygnus.db.JdbcCygnusDbExecutorTest" time="0.009"/>
|
||||
<testcase name="rollsBackFailedTransactions" classname="com.cygnus.db.JdbcCygnusDbExecutorTest" time="0.003"/>
|
||||
<testcase name="rejectsLegacyStringReplacementQueries" classname="com.cygnus.db.JdbcCygnusDbExecutorTest" time="0.002"/>
|
||||
</testsuite>
|
||||
@@ -1,4 +0,0 @@
|
||||
-------------------------------------------------------------------------------
|
||||
Test set: com.cygnus.db.JdbcCygnusDbExecutorTest
|
||||
-------------------------------------------------------------------------------
|
||||
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.124 s -- in com.cygnus.db.JdbcCygnusDbExecutorTest
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user