You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "Haonan Hou (Jira)" <ji...@apache.org> on 2021/03/17 02:25:00 UTC
[jira] [Commented] (IOTDB-1216) User with 'READ_TIMESERIES'
privilege execute UDTF query , "Msg: 602: No permissions for this
operation UDTF"
[ https://issues.apache.org/jira/browse/IOTDB-1216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17303034#comment-17303034 ]
Haonan Hou commented on IOTDB-1216:
-----------------------------------
I think this is a wishing feature to be done but not a bug. [~suyurong]
> 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: 刘珍
> Priority: Minor
> 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)