You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by GitBox <gi...@apache.org> on 2019/06/20 12:02:28 UTC

[GitHub] [incubator-druid] shizhengchao opened a new issue #7931: a problem with druid jdbc support

shizhengchao opened a new issue #7931: a problem with druid jdbc support
URL: https://github.com/apache/incubator-druid/issues/7931
 
 
   when i use `Avatica JDBC driver` connected to `druid router`,i got an error:
   ```
   org.apache.druid.java.util.common.IAE: Received an Avatica request without a connectionId.
   ```
   The following is a detailed description:
   ### Affected Version
   
   0.14
   
   ### Description
   when i use `Avatica JDBC driver` connected to `druid router`,when `avatica-remote` send `execute` request to `druid router`, an error happend , i found the `connectionId` is under the key `statementHandle`  like this: 
   ```json
   {"request":"execute","statementHandle":{"connectionId":"b1511e18-c6b8-4c79-a166-977c204511ef","id":1,"signature":{"columns":[{"ordinal":0,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":3,"label":"__time","columnName":"__time","schemaName":null,"precision":3,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":93,"name":"TIMESTAMP","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.sql.Timestamp"},{"ordinal":1,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":19,"label":"added","columnName":"added","schemaName":null,"precision":19,"scale":0,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":-5,"name":"BIGINT","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.Long"},{"ordinal":2,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"channel","columnName":"channel","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":3,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"cityName","columnName":"cityName","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":4,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"comment","columnName":"comment","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":5,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"countryIsoCode","columnName":"countryIsoCode","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":6,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"countryName","columnName":"countryName","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":7,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":19,"label":"deleted","columnName":"deleted","schemaName":null,"precision":19,"scale":0,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":-5,"name":"BIGINT","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.Long"},{"ordinal":8,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":19,"label":"delta","columnName":"delta","schemaName":null,"precision":19,"scale":0,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":-5,"name":"BIGINT","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.Long"},{"ordinal":9,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isAnonymous","columnName":"isAnonymous","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":10,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isMinor","columnName":"isMinor","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":11,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isNew","columnName":"isNew","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":12,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isRobot","columnName":"isRobot","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":13,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isUnpatrolled","columnName":"isUnpatrolled","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":14,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"metroCode","columnName":"metroCode","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":15,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"namespace","columnName":"namespace","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":16,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"page","columnName":"page","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":17,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"regionIsoCode","columnName":"regionIsoCode","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":18,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"regionName","columnName":"regionName","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":19,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"user","columnName":"user","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"}],"sql":"select * from wikipedia where comment = 'added project'","parameters":[],"cursorFactory":{"style":"ARRAY","clazz":null,"fieldNames":null},"statementType":"SELECT"}},"parameterValues":[],"maxRowCount":100}
   ```
   so, an error occured in `org.apache.druid.server.AsyncQueryForwardingServlet#service`:
   ```java
   if (isAvatica) {
        .....
        String connectionId = getAvaticaConnectionId(requestMap);
         ......
   }
   private static String getAvaticaConnectionId(Map<String, Object> requestMap)
     {
      // There should be an error here, because the connectionId is in `statementHandle`
       Object connectionIdObj = requestMap.get("connectionId");
       if (connectionIdObj == null) {
         throw new IAE("Received an Avatica request without a connectionId.");
       }
       if (!(connectionIdObj instanceof String)) {
         throw new IAE("Received an Avatica request with a non-String connectionId.");
       }
   
       return (String) connectionIdObj;
     }
   ```
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org