Uploaded image for project: 'Hue (READ ONLY)'
  1. Hue (READ ONLY)
  2. HUE-6892

[jdbc] SQLServer doesn't like "SHOW DATABASES/TABLES"

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Incomplete
    • Affects Version/s: 4.0.0
    • Fix Version/s: None
    • Component/s: app.editor
    • Labels:
    • Environment:

      Using the latest SQLServer JDBC jar file from Microsoft named sqljdbc41.jar
      Tested with Hue 4.0

      Description

      I am able to successfully write a query such as

       Select * from sys.databases 

      or

      USE [DatabaseName];
      SELECT * FROM information_schema.tables;
      

      Haven't tried much more than some other simple SELECT queries.

      Anyways, when selecting the SQLServer JDBC option in the left assist pane, after entering credentials, the popup appears with the error below.

      This makes sense, of course, because SHOW DATABASES/TABLES is not supported in SQLServer. (Technically, I don't think "SHOW" is a procedure in T-SQL at all https://docs.microsoft.com/en-us/sql/t-sql/language-reference)

      Culprit: https://github.com/cloudera/hue/blob/master/desktop/libs/notebook/src/notebook/connectors/jdbc.py#L185-L191

      Related: https://stackoverflow.com/questions/38133960/sql-server-could-not-find-stored-procedure-show

      So, not sure if this is actionable, but the support to show the tables/databases does exist for SQLServer (compared to the blog's note about Phoenix).

      Is it reasonable to subclass (or less ideally, include a conditional based on the connection type) to the Assist class?

      Error

      An error occurred while calling o806.execute. : com.microsoft.sqlserver.jdbc.SQLServerException: Could not find stored procedure 'SHOW'. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1635) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:865) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:762) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6276) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1794) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:184) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:159) at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:735) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381) at py4j.Gateway.invoke(Gateway.java:259) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:209) at java.lang.Thread.run(Thread.java:745)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                moorej Jordan Moore
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: