Solr
  1. Solr
  2. SOLR-1348

JdbcDataSource does not import Blob values correctly by default

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 1.4
    • Labels:
      None

      Description

      When blob values are returned through a java ResultSet Object they have the type byte[].
      As byte[] doesn't have a useful toString method we end up with a reference type value added to the solr document (i.e. [B@1f23c5).
      The problem is easy to remedy by adding the attribute 'convertType="true"' to the dataSource tag within data-config.xml.
      However this attribute does not appear to be documented anywhere and I was only able to find it after a few hours digging through the source code.
      A simple fix for this would be to change the default value of convertType to true within the JdbcDataSource class.

      1. BlobTransformer.java
        2 kB
        Luc Caprini
      2. SOLR-1348.patch
        1 kB
        Shalin Shekhar Mangar

        Activity

        Hide
        Noble Paul added a comment -

        A simple fix for this would be to change the default value of convertType to true within the JdbcDataSource class

        this was kept false deliberately. Users should not get any kind of nasty surprise when they write a Transformer and moreover it can break back compat . I guess it should be documented properly.

        How about a Transformer?

        Show
        Noble Paul added a comment - A simple fix for this would be to change the default value of convertType to true within the JdbcDataSource class this was kept false deliberately. Users should not get any kind of nasty surprise when they write a Transformer and moreover it can break back compat . I guess it should be documented properly. How about a Transformer?
        Hide
        Avlesh Singh added a comment -

        I have used "cast()" function in MySQL to convert my blob columns in the result set to strings.

        Show
        Avlesh Singh added a comment - I have used "cast()" function in MySQL to convert my blob columns in the result set to strings.
        Hide
        Shalin Shekhar Mangar added a comment -

        This patch adds support for the binary field type in converType logic. I'll commit this shortly.

        I've also added the suggested solutions to this problem on the DIH Faq page:

        http://wiki.apache.org/solr/DataImportHandlerFaq#head-149779b72761ab071c841879545256bdbbdc15d2

        Show
        Shalin Shekhar Mangar added a comment - This patch adds support for the binary field type in converType logic. I'll commit this shortly. I've also added the suggested solutions to this problem on the DIH Faq page: http://wiki.apache.org/solr/DataImportHandlerFaq#head-149779b72761ab071c841879545256bdbbdc15d2
        Hide
        Shalin Shekhar Mangar added a comment -

        Committed revision 812045.

        Show
        Shalin Shekhar Mangar added a comment - Committed revision 812045.
        Hide
        Luc Caprini added a comment -

        Tested with Solr1.4, this BLOB Transformer i wrote works fine ...
        simply in your datasource use the following syntax :

        <entity name="a" transformer="BlobTransformer" ... >
        <field column="colname" blob="true" />
        </entity>

        Show
        Luc Caprini added a comment - Tested with Solr1.4, this BLOB Transformer i wrote works fine ... simply in your datasource use the following syntax : <entity name="a" transformer="BlobTransformer" ... > <field column="colname" blob="true" /> </entity>
        Hide
        Shalin Shekhar Mangar added a comment -

        Hey thanks Luc. Can you please open a new issue and attach the patch there? We're not taking any new features for Solr 1.4 but we can commit this for 1.5

        Show
        Shalin Shekhar Mangar added a comment - Hey thanks Luc. Can you please open a new issue and attach the patch there? We're not taking any new features for Solr 1.4 but we can commit this for 1.5
        Hide
        Grant Ingersoll added a comment -

        Bulk close for Solr 1.4

        Show
        Grant Ingersoll added a comment - Bulk close for Solr 1.4

          People

          • Assignee:
            Shalin Shekhar Mangar
            Reporter:
            Jay Clelland
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development