You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2021/03/11 09:50:00 UTC
[jira] [Created] (IOTDB-1216) User with 'READ_TIMESERIES' privilege
execute UDTF query , "Msg: 602: No permissions for this operation UDTF"
刘珍 created IOTDB-1216:
-------------------------
Summary: User with 'READ_TIMESERIES' privilege execute UDTF query , "Msg: 602: No permissions for this operation UDTF"
Key: IOTDB-1216
URL: https://issues.apache.org/jira/browse/IOTDB-1216
Project: Apache IoTDB
Issue Type: Bug
Components: Core/Engine
Reporter: 刘珍
Attachments: image-2021-03-11-17-45-21-522.png
master branch
commit id : 5fcff40f2299caeb0c8a9ae42f68bc18ecf8fee7
root connect iotdb:
SET STORAGE GROUP TO root.sg3;
CREATE TIMESERIES root.sg3.d1.s1 WITH DATATYPE=INT32, ENCODING=PLAIN;
CREATE TIMESERIES root.sg3.d1.s2 WITH DATATYPE=INT32, ENCODING=PLAIN;
INSERT INTO root.sg3.d1(timestamp, s1, s2) VALUES (10, -11, 11);
INSERT INTO root.sg3.d1(timestamp, s1, s2) VALUES (11, -12, 12);
INSERT INTO root.sg3.d1(timestamp, s1, s2) VALUES (12, -13, 13);
CREATE USER ln_write_user 'write_pwd'
grant user ln_write_user privileges 'READ_TIMESERIES' on root.sg3;
ln_write_user connect iotdb to execute UDTF(max) query:
select max(s1) from root.sg3.d1;
{color:#FF0000}Msg: 602: No permissions for this operation UDTF{color}
!image-2021-03-11-17-45-21-522.png!
Max.java :
package org.apache.iotdb.udf;
import org.apache.iotdb.db.query.udf.api.UDTF;
import org.apache.iotdb.db.query.udf.api.access.Row;
import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import java.io.IOException;
public class Max implements UDTF {
private Long time;
private int value;
@Override
public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
configurations
.setOutputDataType(TSDataType.INT32)
.setAccessStrategy(new RowByRowAccessStrategy());
}
@Override
public void transform(Row row, PointCollector collector) {
int candidateValue = row.getInt(0);
if (time == null || value < candidateValue) {
time = row.getTime();
value = candidateValue;
}
}
@Override
public void terminate(PointCollector collector) throws IOException {
if (time != null) {
collector.putInt(time, value);
}
}
create function max as "org.apache.iotdb.udf.Max";
}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)