[ 
https://issues.apache.org/jira/browse/CARBONDATA-3249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

xubo245 updated CARBONDATA-3249:
--------------------------------
    Description: 
SQL and SDK float value is different

Code: it's from 
https://github.com/xubo245/carbondata/commit/537c7265cc4bd755c073501773a523722709338a

{code:java}
  test("test float") {
        val path = FileFactory.getPath(warehouse + "/sdk1").toString
        FileFactory.deleteAllFilesOfDir(new File(warehouse + "/sdk1"))
        sql("drop table if exists carbon_float")
        var fields: Array[Field] = new Array[Field](1)
        // same column name, but name as boolean type
        fields(0) = new Field("b", DataTypes.FLOAT)

        try {
            val builder = CarbonWriter.builder()
            val writer =
                builder.outputPath(path)
                        .uniqueIdentifier(System.nanoTime()).withBlockSize(2)
                        .withCsvInput(new 
Schema(fields)).writtenBy("SparkCarbonDataSourceTest").build()

            var i = 0
            while (i < 1) {
                val array = Array[String](
                    "2147483648.1")
                writer.write(array)
                i += 1
            }
            writer.close()

            val reader = CarbonReader.builder(path, "_temp").build
            i = 0
            var floatValueSDK: Float = 0
            while (i < 20 && reader.hasNext) {
                val row = reader.readNextRow.asInstanceOf[Array[AnyRef]]
                println("SDK float value is: " + row(0))
                floatValueSDK = row(0).asInstanceOf[Float]
                i += 1
            }
            reader.close()

            sql("create table carbon_float(floatField float) stored as 
carbondata")
            sql("insert into carbon_float values('2147483648.1')")
            val df = sql("Select * from carbon_float").collect()
            println("CarbonSession float value is: " + df(0))
            assert(df(0).equals(floatValueSDK))
        } catch {
            case ex: Exception => throw new RuntimeException(ex)
        } finally {
            sql("drop table if exists carbon_float")
            FileFactory.deleteAllFilesOfDir(new File(warehouse + "/sdk1"))
        }
    }

{code}


Exception:

{code:java}
SDK float value is: 2.14748365E9
2019-01-14 18:15:24 AUDIT audit:72 - {"time":"January 14, 2019 2:15:24 AM 
PST","username":"xubo","opName":"CREATE 
TABLE","opId":"26423231368673","opStatus":"START"}
2019-01-14 18:15:24 AUDIT audit:93 - {"time":"January 14, 2019 2:15:24 AM 
PST","username":"xubo","opName":"CREATE 
TABLE","opId":"26423231368673","opStatus":"SUCCESS","opTime":"604 
ms","table":"default.carbon_float","extraInfo":{"bad_record_path":"","local_dictionary_enable":"true","external":"false","sort_columns":"","comment":""}}
2019-01-14 18:15:24 AUDIT audit:72 - {"time":"January 14, 2019 2:15:24 AM 
PST","username":"xubo","opName":"INSERT 
INTO","opId":"26424137339770","opStatus":"START"}
2019-01-14 18:15:26 AUDIT audit:93 - {"time":"January 14, 2019 2:15:26 AM 
PST","username":"xubo","opName":"INSERT 
INTO","opId":"26424137339770","opStatus":"SUCCESS","opTime":"1479 
ms","table":"default.carbon_float","extraInfo":{"SegmentId":"0","DataSize":"408.0B","IndexSize":"254.0B"}}
CarbonSession float value is: [2.1474836481E9]
2019-01-14 18:15:26 AUDIT audit:72 - {"time":"January 14, 2019 2:15:26 AM 
PST","username":"xubo","opName":"DROP 
TABLE","opId":"26425973212561","opStatus":"START"}
2019-01-14 18:15:27 AUDIT audit:93 - {"time":"January 14, 2019 2:15:27 AM 
PST","username":"xubo","opName":"DROP 
TABLE","opId":"26425973212561","opStatus":"SUCCESS","opTime":"393 
ms","table":"default.carbon_float","extraInfo":{}}

org.scalatest.exceptions.TestFailedException: df.apply(0).equals(floatValueSDK) 
was false
java.lang.RuntimeException: org.scalatest.exceptions.TestFailedException: 
df.apply(0).equals(floatValueSDK) was false
        at 
org.apache.carbondata.spark.testsuite.datetype.FloatTest$$anonfun$1.apply$mcV$sp(FloatTest.scala:20)
        at 
org.apache.carbondata.spark.testsuite.datetype.FloatTest$$anonfun$1.apply(FloatTest.scala:12)
        at 
org.apache.carbondata.spark.testsuite.datetype.FloatTest$$anonfun$1.apply(FloatTest.scala:12)
        at 
org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22)
        at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85)
        at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
{code}

  was:SQL and SDK float value is different


> SQL and SDK float value is different
> ------------------------------------
>
>                 Key: CARBONDATA-3249
>                 URL: https://issues.apache.org/jira/browse/CARBONDATA-3249
>             Project: CarbonData
>          Issue Type: Bug
>            Reporter: xubo245
>            Priority: Major
>
> SQL and SDK float value is different
> Code: it's from 
> https://github.com/xubo245/carbondata/commit/537c7265cc4bd755c073501773a523722709338a
> {code:java}
>   test("test float") {
>         val path = FileFactory.getPath(warehouse + "/sdk1").toString
>         FileFactory.deleteAllFilesOfDir(new File(warehouse + "/sdk1"))
>         sql("drop table if exists carbon_float")
>         var fields: Array[Field] = new Array[Field](1)
>         // same column name, but name as boolean type
>         fields(0) = new Field("b", DataTypes.FLOAT)
>         try {
>             val builder = CarbonWriter.builder()
>             val writer =
>                 builder.outputPath(path)
>                         .uniqueIdentifier(System.nanoTime()).withBlockSize(2)
>                         .withCsvInput(new 
> Schema(fields)).writtenBy("SparkCarbonDataSourceTest").build()
>             var i = 0
>             while (i < 1) {
>                 val array = Array[String](
>                     "2147483648.1")
>                 writer.write(array)
>                 i += 1
>             }
>             writer.close()
>             val reader = CarbonReader.builder(path, "_temp").build
>             i = 0
>             var floatValueSDK: Float = 0
>             while (i < 20 && reader.hasNext) {
>                 val row = reader.readNextRow.asInstanceOf[Array[AnyRef]]
>                 println("SDK float value is: " + row(0))
>                 floatValueSDK = row(0).asInstanceOf[Float]
>                 i += 1
>             }
>             reader.close()
>             sql("create table carbon_float(floatField float) stored as 
> carbondata")
>             sql("insert into carbon_float values('2147483648.1')")
>             val df = sql("Select * from carbon_float").collect()
>             println("CarbonSession float value is: " + df(0))
>             assert(df(0).equals(floatValueSDK))
>         } catch {
>             case ex: Exception => throw new RuntimeException(ex)
>         } finally {
>             sql("drop table if exists carbon_float")
>             FileFactory.deleteAllFilesOfDir(new File(warehouse + "/sdk1"))
>         }
>     }
> {code}
> Exception:
> {code:java}
> SDK float value is: 2.14748365E9
> 2019-01-14 18:15:24 AUDIT audit:72 - {"time":"January 14, 2019 2:15:24 AM 
> PST","username":"xubo","opName":"CREATE 
> TABLE","opId":"26423231368673","opStatus":"START"}
> 2019-01-14 18:15:24 AUDIT audit:93 - {"time":"January 14, 2019 2:15:24 AM 
> PST","username":"xubo","opName":"CREATE 
> TABLE","opId":"26423231368673","opStatus":"SUCCESS","opTime":"604 
> ms","table":"default.carbon_float","extraInfo":{"bad_record_path":"","local_dictionary_enable":"true","external":"false","sort_columns":"","comment":""}}
> 2019-01-14 18:15:24 AUDIT audit:72 - {"time":"January 14, 2019 2:15:24 AM 
> PST","username":"xubo","opName":"INSERT 
> INTO","opId":"26424137339770","opStatus":"START"}
> 2019-01-14 18:15:26 AUDIT audit:93 - {"time":"January 14, 2019 2:15:26 AM 
> PST","username":"xubo","opName":"INSERT 
> INTO","opId":"26424137339770","opStatus":"SUCCESS","opTime":"1479 
> ms","table":"default.carbon_float","extraInfo":{"SegmentId":"0","DataSize":"408.0B","IndexSize":"254.0B"}}
> CarbonSession float value is: [2.1474836481E9]
> 2019-01-14 18:15:26 AUDIT audit:72 - {"time":"January 14, 2019 2:15:26 AM 
> PST","username":"xubo","opName":"DROP 
> TABLE","opId":"26425973212561","opStatus":"START"}
> 2019-01-14 18:15:27 AUDIT audit:93 - {"time":"January 14, 2019 2:15:27 AM 
> PST","username":"xubo","opName":"DROP 
> TABLE","opId":"26425973212561","opStatus":"SUCCESS","opTime":"393 
> ms","table":"default.carbon_float","extraInfo":{}}
> org.scalatest.exceptions.TestFailedException: 
> df.apply(0).equals(floatValueSDK) was false
> java.lang.RuntimeException: org.scalatest.exceptions.TestFailedException: 
> df.apply(0).equals(floatValueSDK) was false
>       at 
> org.apache.carbondata.spark.testsuite.datetype.FloatTest$$anonfun$1.apply$mcV$sp(FloatTest.scala:20)
>       at 
> org.apache.carbondata.spark.testsuite.datetype.FloatTest$$anonfun$1.apply(FloatTest.scala:12)
>       at 
> org.apache.carbondata.spark.testsuite.datetype.FloatTest$$anonfun$1.apply(FloatTest.scala:12)
>       at 
> org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22)
>       at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85)
>       at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to