Skip to content

Commit b2126d1

Browse files
feat: clone options (#241)
1 parent d1560cb commit b2126d1

File tree

7 files changed

+51
-14
lines changed

7 files changed

+51
-14
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
### Features
44

55
1. [#209](https://github.com/InfluxCommunity/influxdb3-java/pull/209) Add query function returning row as map.
6-
1. [#238](https://github.com/InfluxCommunity/influxdb3-java/pull/238): Support fast writes without waiting for WAL
6+
2. [#238](https://github.com/InfluxCommunity/influxdb3-java/pull/238): Support fast writes without waiting for WAL
77
persistence:
88
- New write option (`WriteOptions.noSync`) added: `true` value means faster write but without the confirmation that
99
the data was persisted. Default value: `false`.
@@ -13,6 +13,7 @@
1313
- Long precision string values added from v3 HTTP API: `"nanosecond"`, `"microsecond"`, `"millisecond"`,
1414
`"second"` (
1515
in addition to the existing `"ns"`, `"us"`, `"ms"`, `"s"`).
16+
3. [#241](https://github.com/InfluxCommunity/influxdb3-java/pull/241): Some default options will be used from a getter.
1617

1718
### Bug Fixes
1819

examples/src/main/java/com/influxdb/v3/IOxExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public static void main(final String[] args) throws Exception {
9898

9999
String influxQL =
100100
"select MEAN(value) from temperature group by time(1d) fill(none) order by time desc limit 10";
101-
try (Stream<Object[]> stream = client.query(influxQL, QueryOptions.INFLUX_QL)) {
101+
try (Stream<Object[]> stream = client.query(influxQL, QueryOptions.defaultInfluxQlQueryOptions())) {
102102
stream.forEach(row -> System.out.printf("| %-16s | %-18s |%n", row[1], row[2]));
103103
}
104104

src/main/java/com/influxdb/v3/client/internal/InfluxDBClientImpl.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public void writePoints(@Nonnull final List<Point> points, @Nonnull final WriteO
165165
@Nonnull
166166
@Override
167167
public Stream<Object[]> query(@Nonnull final String query) {
168-
return query(query, NO_PARAMETERS, QueryOptions.DEFAULTS);
168+
return query(query, NO_PARAMETERS, QueryOptions.defaultQueryOptions());
169169
}
170170

171171
@Nonnull
@@ -177,7 +177,7 @@ public Stream<Object[]> query(@Nonnull final String query, @Nonnull final QueryO
177177
@Nonnull
178178
@Override
179179
public Stream<Object[]> query(@Nonnull final String query, @Nonnull final Map<String, Object> parameters) {
180-
return query(query, parameters, QueryOptions.DEFAULTS);
180+
return query(query, parameters, QueryOptions.defaultQueryOptions());
181181
}
182182

183183
@Nonnull
@@ -198,15 +198,15 @@ public Stream<Object[]> query(@Nonnull final String query,
198198
@Nonnull
199199
@Override
200200
public Stream<Map<String, Object>> queryRows(@Nonnull final String query) {
201-
return queryRows(query, NO_PARAMETERS, QueryOptions.DEFAULTS);
201+
return queryRows(query, NO_PARAMETERS, QueryOptions.defaultQueryOptions());
202202
}
203203

204204
@Nonnull
205205
@Override
206206
public Stream<Map<String, Object>> queryRows(@Nonnull final String query,
207207
@Nonnull final Map<String, Object> parameters
208208
) {
209-
return queryRows(query, parameters, QueryOptions.DEFAULTS);
209+
return queryRows(query, parameters, QueryOptions.defaultQueryOptions());
210210
}
211211

212212
@Nonnull
@@ -233,7 +233,7 @@ public Stream<Map<String, Object>> queryRows(@Nonnull final String query,
233233
@Nonnull
234234
@Override
235235
public Stream<PointValues> queryPoints(@Nonnull final String query) {
236-
return queryPoints(query, QueryOptions.DEFAULTS);
236+
return queryPoints(query, QueryOptions.defaultQueryOptions());
237237
}
238238

239239
@Nonnull
@@ -245,7 +245,7 @@ public Stream<PointValues> queryPoints(@Nonnull final String query, @Nonnull fin
245245
@Nonnull
246246
@Override
247247
public Stream<PointValues> queryPoints(@Nonnull final String query, @Nonnull final Map<String, Object> parameters) {
248-
return queryPoints(query, parameters, QueryOptions.DEFAULTS);
248+
return queryPoints(query, parameters, QueryOptions.defaultQueryOptions());
249249
}
250250

251251
@Nonnull
@@ -266,7 +266,7 @@ public Stream<PointValues> queryPoints(@Nonnull final String query,
266266
@Nonnull
267267
@Override
268268
public Stream<VectorSchemaRoot> queryBatches(@Nonnull final String query) {
269-
return queryBatches(query, QueryOptions.DEFAULTS);
269+
return queryBatches(query, QueryOptions.defaultQueryOptions());
270270
}
271271

272272
@Nonnull
@@ -279,7 +279,7 @@ public Stream<VectorSchemaRoot> queryBatches(@Nonnull final String query, @Nonnu
279279
@Override
280280
public Stream<VectorSchemaRoot> queryBatches(@Nonnull final String query,
281281
@Nonnull final Map<String, Object> parameters) {
282-
return queryBatches(query, parameters, QueryOptions.DEFAULTS);
282+
return queryBatches(query, parameters, QueryOptions.defaultQueryOptions());
283283
}
284284

285285
@Nonnull

src/main/java/com/influxdb/v3/client/query/QueryOptions.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,43 @@
5151
public final class QueryOptions {
5252

5353
/**
54-
* Default QueryAPI options.
54+
* Default QueryAPI options.<br>
55+
* Deprecated: use {@link #defaultQueryOptions} instead.
5556
*/
57+
@Deprecated(forRemoval = true)
5658
public static final QueryOptions DEFAULTS = new QueryOptions(null, QueryType.SQL);
59+
5760
/**
58-
* Default QueryAPI options for InfluxQL.
61+
* Default QueryAPI options for InfluxQL.<br>
62+
* Deprecated: use {@link #defaultInfluxQlQueryOptions} instead.
5963
*/
64+
@Deprecated(forRemoval = true)
6065
public static final QueryOptions INFLUX_QL = new QueryOptions(null, QueryType.InfluxQL);
6166

6267
private final String database;
6368
private final QueryType queryType;
6469
private final Map<String, String> headers;
6570
private GrpcCallOptions grpcCallOptions = GrpcCallOptions.getDefaultOptions();
6671

72+
/**
73+
* Provides default query options with no database specified and using SQL as the query type.
74+
*
75+
* @return A {@code QueryOptions} instance with default settings, including a null database
76+
* and {@code QueryType.SQL} as the query type.
77+
*/
78+
public static QueryOptions defaultQueryOptions() {
79+
return new QueryOptions(null, QueryType.SQL);
80+
}
81+
82+
/**
83+
* Provides default query options for executing InfluxQL queries with no database specified.
84+
*
85+
* @return A {@code QueryOptions} instance configured with a null database and {@code QueryType.InfluxQL}.
86+
*/
87+
public static QueryOptions defaultInfluxQlQueryOptions() {
88+
return new QueryOptions(null, QueryType.InfluxQL);
89+
}
90+
6791
/**
6892
* Construct QueryAPI options. The query type is set to SQL.
6993
*

src/main/java/com/influxdb/v3/client/write/WriteOptions.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ public final class WriteOptions {
6767
public static final boolean DEFAULT_NO_SYNC = false;
6868
/**
6969
* Default WriteOptions.
70+
* Deprecated use {@link #defaultWriteOptions} instead
7071
*/
72+
@Deprecated(forRemoval = true)
7173
public static final WriteOptions DEFAULTS = new WriteOptions(
7274
null, DEFAULT_WRITE_PRECISION, DEFAULT_GZIP_THRESHOLD, DEFAULT_NO_SYNC, null, null);
7375

@@ -78,6 +80,16 @@ public final class WriteOptions {
7880
private final Map<String, String> defaultTags;
7981
private final Map<String, String> headers;
8082

83+
/**
84+
* Creates a default instance of {@code WriteOptions} configured with standard values.
85+
*
86+
* @return A {@code WriteOptions} object with the default settings for write precision,
87+
* compression threshold, and no specified database.
88+
*/
89+
public static WriteOptions defaultWriteOptions() {
90+
return new WriteOptions(null, DEFAULT_WRITE_PRECISION, DEFAULT_GZIP_THRESHOLD, DEFAULT_NO_SYNC, null, null);
91+
}
92+
8193
/**
8294
* Construct WriteAPI options.
8395
*

src/test/java/com/influxdb/v3/client/ITQueryWrite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ void queryWrite() {
9595

9696
String influxQL = String.format("SELECT MEAN(value) FROM %s WHERE \"testId\"=%d "
9797
+ "group by time(1s) fill(none) order by time desc limit 1", measurement, testId);
98-
try (Stream<Object[]> stream = client.query(influxQL, QueryOptions.INFLUX_QL)) {
98+
try (Stream<Object[]> stream = client.query(influxQL, QueryOptions.defaultInfluxQlQueryOptions())) {
9999

100100
List<Object[]> rows = stream.collect(Collectors.toList());
101101

src/test/java/com/influxdb/v3/client/integration/E2ETest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ public void testQueryRowWithOptions() throws Exception {
327327

328328
// Result set much be ordered by time
329329
String sql = String.format("Select * from %s where \"testId\"='%s' order by time", measurement, uuid);
330-
try (Stream<Map<String, Object>> stream = client.queryRows(sql, QueryOptions.DEFAULTS)) {
330+
try (Stream<Map<String, Object>> stream = client.queryRows(sql, QueryOptions.defaultQueryOptions())) {
331331
List<Map<String, Object>> results = stream.collect(Collectors.toList());
332332
for (int i = 0; i <= 9; i++) {
333333
Map<String, Object> row = results.get(i);

0 commit comments

Comments
 (0)