@@ -1715,6 +1715,7 @@ func TestHandler_Write_V2_Precision(t *testing.T) {
1715
1715
}
1716
1716
1717
1717
func TestHandler_Delete_V2 (t * testing.T ) {
1718
+ var errUnexpectedMeasurement = errors .New ("unexpected measurement" )
1718
1719
type test struct {
1719
1720
url string
1720
1721
body httpd.DeleteBody
@@ -1742,7 +1743,7 @@ func TestHandler_Delete_V2(t *testing.T) {
1742
1743
},
1743
1744
& test {
1744
1745
url : "/api/v2/delete?org=bar&bucket=mydb/myrp" ,
1745
- body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T22:56:06Z" , Predicate : "_measurement='baz' AND t1=tagOne" },
1746
+ body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T22:56:06Z" , Predicate : "_measurement=\" mymeasure \" AND t1=tagOne" },
1746
1747
status : http .StatusOK ,
1747
1748
errMsg : `` ,
1748
1749
},
@@ -1782,11 +1783,28 @@ func TestHandler_Delete_V2(t *testing.T) {
1782
1783
body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T18:56:06Z" , Predicate : `_measurement = "mymeasure" AND "tag0" = "value1"` },
1783
1784
status : http .StatusOK ,
1784
1785
},
1786
+ & test {
1787
+ url : "/api/v2/delete?org=bar&bucket=mydb/myrp" ,
1788
+ body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T18:56:06Z" , Predicate : `_measurement = mymeasure AND "tag0" = "value1"` },
1789
+ status : http .StatusOK ,
1790
+ },
1785
1791
& test {
1786
1792
url : "/api/v2/delete?org=bar&bucket=mydb/myrp" ,
1787
1793
body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T18:56:06Z" , Predicate : `_measurement = "mymeasure" AND "tag0" = "value1" AND tag1 = value3` },
1788
1794
status : http .StatusOK ,
1789
1795
},
1796
+ & test {
1797
+ url : "/api/v2/delete?org=bar&bucket=mydb/myrp" ,
1798
+ body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T18:56:06Z" , Predicate : `_measurement = "bad_measurement" AND "tag0" = "value1" AND tag1 = value3` },
1799
+ status : http .StatusBadRequest ,
1800
+ errMsg : "delete - database: \" mydb\" , retention policy: \" myrp\" , start: \" 2022-03-23T18:56:06Z\" , stop: \" 2022-03-23T20:56:06Z\" , predicate: \" _measurement = \\ \" bad_measurement\\ \" AND \\ \" tag0\\ \" = \\ \" value1\\ \" AND tag1 = value3\" , error: unexpected measurement" ,
1801
+ },
1802
+ & test {
1803
+ url : "/api/v2/delete?org=bar&bucket=mydb/myrp" ,
1804
+ body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T18:56:06Z" , Predicate : `_measurement = bad_measurement AND "tag0" = "value1" AND tag1 = value3` },
1805
+ status : http .StatusBadRequest ,
1806
+ errMsg : "delete - database: \" mydb\" , retention policy: \" myrp\" , start: \" 2022-03-23T18:56:06Z\" , stop: \" 2022-03-23T20:56:06Z\" , predicate: \" _measurement = bad_measurement AND \\ \" tag0\\ \" = \\ \" value1\\ \" AND tag1 = value3\" , error: unexpected measurement" ,
1807
+ },
1790
1808
& test {
1791
1809
url : "/api/v2/delete?org=bar&bucket=mydb/myrp" ,
1792
1810
body : httpd.DeleteBody {Stop : "2022-03-23T20:56:06Z" , Start : "2022-03-23T18:56:06Z" , Predicate : `_measurement = "mymeasure" AND "tag0" != "value1" AND tag1 = value3` },
@@ -1796,7 +1814,14 @@ func TestHandler_Delete_V2(t *testing.T) {
1796
1814
}
1797
1815
1798
1816
h := NewHandler (false )
1799
- h .Store .DeleteFn = func (database string , sources []influxql.Source , condition influxql.Expr ) error { return nil }
1817
+ h .Store .DeleteFn = func (database string , sources []influxql.Source , condition influxql.Expr ) error {
1818
+ if len (sources ) > 0 {
1819
+ if m , ok := sources [0 ].(* influxql.Measurement ); ok && m .Name != "mymeasure" {
1820
+ return errUnexpectedMeasurement
1821
+ }
1822
+ }
1823
+ return nil
1824
+ }
1800
1825
h .MetaClient = & internal.MetaClientMock {
1801
1826
DatabaseFn : func (name string ) * meta.DatabaseInfo {
1802
1827
if name == "mydb" {
0 commit comments