Skip to content

Commit

Permalink
[influxdbv1] openhab#9790 and openhab#10398 Fix for retention and tab…
Browse files Browse the repository at this point in the history
…le names containing InfluxQL keywords or special characters
  • Loading branch information
fremel75 committed Aug 21, 2021
1 parent 02d8e43 commit 30d8c74
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,12 @@ private String calculateTableName(@Nullable String itemName) {

private String fullQualifiedTableName(String retentionPolicy, String tableName, boolean escapeTableName) {
StringBuilder sb = new StringBuilder();
Appender.appendName(retentionPolicy, sb);
Appender.appendName("\"" + retentionPolicy + "\"", sb);
sb.append(".");
if (escapeTableName) {
Appender.appendName(tableName, sb);
Appender.appendName("\"" + tableName + "\"", sb);
} else {
sb.append(tableName);
sb.append("\"" + tableName + "\"");
}
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public void testSimpleItemQueryWithoutParams() {
FilterCriteria criteria = createBaseCriteria();

String queryV1 = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem;"));
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"sampleItem\";"));

String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2,
Expand All @@ -91,7 +91,7 @@ public void testSimpleUnboundedItemWithoutParams() {
criteria.setOrdering(null);

String queryV1 = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin./.*/;"));
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"/.*/\";"));

String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2, equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)"));
Expand All @@ -107,7 +107,7 @@ public void testRangeCriteria() {

String queryV1 = instanceV1.createQuery(criteria, RETENTION_POLICY);
String expectedQueryV1 = String.format(
"SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem WHERE time >= '%s' AND time <= '%s';",
"SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"sampleItem\" WHERE time >= '%s' AND time <= '%s';",
now.toInstant(), tomorrow.toInstant());
assertThat(queryV1, equalTo(expectedQueryV1));

Expand All @@ -127,7 +127,8 @@ public void testValueOperator() {
criteria.setState(new PercentType(90));

String query = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(query, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem WHERE value <= 90;"));
assertThat(query,
equalTo("SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"sampleItem\" WHERE value <= 90;"));

String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2,
Expand All @@ -144,7 +145,8 @@ public void testPagination() {
criteria.setPageSize(10);

String query = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(query, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem LIMIT 10 OFFSET 20;"));
assertThat(query,
equalTo("SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"sampleItem\" LIMIT 10 OFFSET 20;"));

String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2, equalTo("from(bucket:\"origin\")\n\t" + "|> range(start:-100y)\n\t"
Expand All @@ -158,7 +160,8 @@ public void testOrdering() {
criteria.setOrdering(FilterCriteria.Ordering.ASCENDING);

String query = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(query, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem ORDER BY time ASC;"));
assertThat(query,
equalTo("SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"sampleItem\" ORDER BY time ASC;"));

String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2,
Expand Down Expand Up @@ -189,7 +192,7 @@ public void testMeasurementNameFromMetadata() {

String queryV1 = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV1, equalTo(
"SELECT \"value\"::field,\"item\"::tag FROM origin.measurementName WHERE item = 'sampleItem';"));
"SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"measurementName\" WHERE item = 'sampleItem';"));

String queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2,
Expand All @@ -202,7 +205,7 @@ public void testMeasurementNameFromMetadata() {
.thenReturn(new Metadata(metadataKey, "", Map.of("key1", "val1", "key2", "val2")));

queryV1 = instanceV1.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM origin.sampleItem;"));
assertThat(queryV1, equalTo("SELECT \"value\"::field,\"item\"::tag FROM \"origin\".\"sampleItem\";"));

queryV2 = instanceV2.createQuery(criteria, RETENTION_POLICY);
assertThat(queryV2,
Expand Down

0 comments on commit 30d8c74

Please sign in to comment.