Conversation
Client V2 CoverageCoverage Report
Class Coverage
|
JDBC V2 CoverageCoverage Report
Class Coverage
|
|
@claude review |
|
Claude finished @mshustov's task in 2m 0s —— View job Code Review
This PR adds a new standalone Gradle example project demonstrating Apache Arrow Stream format read/write with client-v2. Since it's an example module it has no backward-compatibility risk to existing library users, but several issues make the examples non-functional or misleading for users who try to run them. Critical1. flightServer = FlightServer.builder()
.location(location)
.build();
2. 3. Wrong mainClass = "org.example.App"
High4. 5. Medium6. Errors silently swallowed with LOG.info("Failed writing data to output stream", e); // line 101
LOG.info("Failed to write data to DB", e); // line 106Using 7. SNAPSHOT dependency in example code SNAPSHOT coordinates resolve to whatever is currently on the snapshot repository. Once 8. Test is an empty placeholder @Test public void appHasAGreeting() {
AppArrowServer classUnderTest = new AppArrowServer();
}This is the unmodified Gradle Low / Style9. Unused 10. 11. String concatenation in LOG.error("Failed at " + index, e);Should use SLF4J parameterized logging: 12. Query format specified inconsistently Summary
The Arrow Flight server half of this example ( |
JDBC V1 CoverageCoverage Report
Class Coverage
|
Client V1 CoverageCoverage Report
Class Coverage
|
|
@claude review |
|
Claude finished @chernser's task in 2m 51s —— View job Code Review
The Arrow Flight Server half ( High1. Likely wrong ClickHouse type in "CREATE TABLE IF NOT EXISTS " + table + "(ts DateTime(3), val1 Decimal(76,62)) ..."
2. Vectors not protected by try-finally in TimeStampVector tsVector = new TimeStampMilliVector("ts", rootAllocator); // line 59
Decimal256Vector val1Vector = new Decimal256Vector("val1", rootAllocator, 76, 39); // line 61
VectorSchemaRoot vectorSchemaRoot = VectorSchemaRoot.of(tsVector, val1Vector); // line 63
// ... exception can throw here ...
try (InsertResponse ...) { ... } finally { vectorSchemaRoot.close(); } // line 93-109
Medium3. Stale import of a JDK-internal class in import sun.jvmstat.monitor.MonitoredVmUtil.jvmArgsThis import is unused and references 4. Format specified inline in client.query("SELECT * FROM " + table + " LIMIT " + nRows + " FORMAT ArrowStream")
Low5. String concatenation in LOG.error("Failed at " + index, e);Should use SLF4J parameterized logging: 6. Unused 7. No tests Summary
Verdict: need changes — item 1 ( |
|
@claude review |
|
Claude finished @chernser's task in 1m 51s —— View job Code Review
Several issues from the previous review have been fixed: Critical1. executeUpdate("CREATE TABLE IF NOT EXISTS " + table + "(ts DateTime(3), val1 Decimal(76,62)) ...", client);
executeUpdate("CREATE TABLE IF NOT EXISTS " + tableCopy + "(ts DateTime(3), val1 Decimal(76,62)) ...", client);
Medium2. "CREATE TABLE IF NOT EXISTS " + table + "(ts DateTime64, val1 Decimal(76,39)) ..."
Low3. String concatenation in LOG.error("Failed at " + index, e);Should use SLF4J parameterized logging to avoid unnecessary string allocation on the non-error path: LOG.error("Failed at {}", index, e);4. No tests Summary
Verdict: need changes — |
Is a valid data types and example runs
This is example
this is bad comment because real signature accepts string and Throwable only. |
|



Summary
Checklist
Delete items not relevant to your PR: