You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@manifoldcf.apache.org by "Karl Wright (JIRA)" <ji...@apache.org> on 2014/09/16 15:29:34 UTC

[jira] [Comment Edited] (CONNECTORS-1032) Can't crawl MySQL database tables

    [ https://issues.apache.org/jira/browse/CONNECTORS-1032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14135419#comment-14135419 ] 

Karl Wright edited comment on CONNECTORS-1032 at 9/16/14 1:29 PM:
------------------------------------------------------------------

Ok, that's not useful then.  I still suspect, though, that the problem is that your MySQL database is in a mode that makes its return columns not be recognizable.  Let's see whether this is true.

In the file connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java, around line 282, you should see:

{code}
        IDynamicResultRow row = idSet.getNextRow();
        if (row == null)
          break;
        try
        {
          Object o = row.getValue(JDBCConstants.idReturnColumnName);
...
{code}

Can you change that to:

{code}
        IDynamicResultRow row = idSet.getNextRow();
        if (row == null)
          break;
        try
        {
          System.out.println("Columns returned:");
          Iterator<String> debugiter = row.getColumns();
          while (debugiter.hasNext())
          {
            System.out.println(" " + debugIter.next());
          }
          Object o = row.getValue(JDBCConstants.idReturnColumnName);
{code}

Please rebuild, restart, and send me the output from standard out.  Thanks!

Karl



was (Author: kwright@metacarta.com):
Ok, that's not useful then.  I still suspect, though, that the problem is that your MySQL database is in a mode that makes its return columns not be recognizable.  Let's see whether this is true.

In the file connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java, around line 282, you should see:

{code}
        IDynamicResultRow row = idSet.getNextRow();
        if (row == null)
          break;
        try
        {
          Object o = row.getValue(JDBCConstants.idReturnColumnName);
...
{code}

Can you change that to:

        IDynamicResultRow row = idSet.getNextRow();
        if (row == null)
          break;
        try
        {
          System.out.println("Columns returned:");
          Iterator<String> debugiter = row.getColumns();
          while (debugiter.hasNext())
          {
            System.out.println(" " + debugIter.next());
          }
          Object o = row.getValue(JDBCConstants.idReturnColumnName);
{code}

Please rebuild, restart, and send me the output from standard out.  Thanks!

Karl


> Can't crawl MySQL database tables
> ---------------------------------
>
>                 Key: CONNECTORS-1032
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-1032
>             Project: ManifoldCF
>          Issue Type: Bug
>          Components: JDBC connector
>            Reporter: Karl Wright
>            Assignee: Karl Wright
>
> Against some indeterminate version of MySQL, the seeding query:
> {code}
> SELECT command_id AS $(IDCOLUMN) FROM icinga_commands
> {code}
> ... produces the following:
> Error: Bad seed query; doesn't return $(IDCOLUMN) column. Try using quotes around $(IDCOLUMN) variable, e.g. "$(IDCOLUMN)".
> So does:
> {code}
> SELECT command_id AS "$(IDCOLUMN)" FROM icinga_commands
> {code}
> The first level of diagnosis will be to determine what column names are in fact being returned.  IDynamicResultRow has the following method:
> {code}
>  public Iterator<String> getColumns();
> {code}
> ... which we will need to use to get at the column names.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)