You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Dan Burkert (JIRA)" <ji...@apache.org> on 2016/11/29 17:36:58 UTC

[jira] [Updated] (KUDU-1766) Equal predicate with MAX_VALUE of Integer/Long not working

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

Dan Burkert updated KUDU-1766:
------------------------------
    Description: 
Equal predicate is working for Integer.MIN_VALUE to (Integer.MAX_VALUE - 1) and failing for Integer.MAX_VALUE.

To replicate:

{code}
            String tableName = "java_sample-" + System.currentTimeMillis();
            KuduClient client = new KuduClient.KuduClientBuilder(KUDU_MASTER).build();
            
            Integer key = Integer.MAX_VALUE;
            List<ColumnSchema> columns = new ArrayList<>(2);
            columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build());
            columns.add(new ColumnSchema.ColumnSchemaBuilder("value", Type.STRING).build());
            List<String> rangeKeys = new ArrayList<>();
            rangeKeys.add("key");

            Schema schema = new Schema(columns);
            client.createTable(tableName, schema, new CreateTableOptions().setRangePartitionColumns(rangeKeys));


            KuduTable table = client.openTable(tableName);
            KuduSession session = client.newSession();
            Insert insert = table.newInsert();
            PartialRow row = insert.getRow();
            row.addInt(0, key);
            row.addString(1, "dev");
            session.apply(insert);

            KuduPredicate predicate = KuduPredicate.newComparisonPredicate(
                    new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build(),
                    KuduPredicate.ComparisonOp.EQUAL, key);
            KuduScanner scanner = client.newScannerBuilder(table).addPredicate(predicate).build();

            while (scanner.hasMoreRows())
            {
                RowResultIterator results = scanner.nextRows();
                while (results.hasNext())
                {
                    System.out.println("Find with EQUAL predicate...");
                    RowResult result = results.next();
                    System.out.println(result.getInt("key"));
                    System.out.println(result.getString("value"));
                }
            }
{code}

  was:
Equal predicate is working for Integer.MIN_VALUE to (Integer.MAX_VALUE - 1) and failing for Integer.MAX_VALUE.

To replicate:

String tableName = "java_sample-" + System.currentTimeMillis();
            KuduClient client = new KuduClient.KuduClientBuilder(KUDU_MASTER).build();
            
            Integer key = Integer.MAX_VALUE;
            List<ColumnSchema> columns = new ArrayList<>(2);
            columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build());
            columns.add(new ColumnSchema.ColumnSchemaBuilder("value", Type.STRING).build());
            List<String> rangeKeys = new ArrayList<>();
            rangeKeys.add("key");

            Schema schema = new Schema(columns);
            client.createTable(tableName, schema, new CreateTableOptions().setRangePartitionColumns(rangeKeys));


            KuduTable table = client.openTable(tableName);
            KuduSession session = client.newSession();
            Insert insert = table.newInsert();
            PartialRow row = insert.getRow();
            row.addInt(0, key);
            row.addString(1, "dev");
            session.apply(insert);

            KuduPredicate predicate = KuduPredicate.newComparisonPredicate(
                    new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build(),
                    KuduPredicate.ComparisonOp.EQUAL, key);
            KuduScanner scanner = client.newScannerBuilder(table).addPredicate(predicate).build();

            while (scanner.hasMoreRows())
            {
                RowResultIterator results = scanner.nextRows();
                while (results.hasNext())
                {
                    System.out.println("Find with EQUAL predicate...");
                    RowResult result = results.next();
                    System.out.println(result.getInt("key"));
                    System.out.println(result.getString("value"));
                }
            }


> Equal predicate with MAX_VALUE of Integer/Long not working
> ----------------------------------------------------------
>
>                 Key: KUDU-1766
>                 URL: https://issues.apache.org/jira/browse/KUDU-1766
>             Project: Kudu
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 1.1.0
>         Environment: Used cloudera kudu sandbox 5.8.0
>            Reporter: karthik
>
> Equal predicate is working for Integer.MIN_VALUE to (Integer.MAX_VALUE - 1) and failing for Integer.MAX_VALUE.
> To replicate:
> {code}
>             String tableName = "java_sample-" + System.currentTimeMillis();
>             KuduClient client = new KuduClient.KuduClientBuilder(KUDU_MASTER).build();
>             
>             Integer key = Integer.MAX_VALUE;
>             List<ColumnSchema> columns = new ArrayList<>(2);
>             columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build());
>             columns.add(new ColumnSchema.ColumnSchemaBuilder("value", Type.STRING).build());
>             List<String> rangeKeys = new ArrayList<>();
>             rangeKeys.add("key");
>             Schema schema = new Schema(columns);
>             client.createTable(tableName, schema, new CreateTableOptions().setRangePartitionColumns(rangeKeys));
>             KuduTable table = client.openTable(tableName);
>             KuduSession session = client.newSession();
>             Insert insert = table.newInsert();
>             PartialRow row = insert.getRow();
>             row.addInt(0, key);
>             row.addString(1, "dev");
>             session.apply(insert);
>             KuduPredicate predicate = KuduPredicate.newComparisonPredicate(
>                     new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build(),
>                     KuduPredicate.ComparisonOp.EQUAL, key);
>             KuduScanner scanner = client.newScannerBuilder(table).addPredicate(predicate).build();
>             while (scanner.hasMoreRows())
>             {
>                 RowResultIterator results = scanner.nextRows();
>                 while (results.hasNext())
>                 {
>                     System.out.println("Find with EQUAL predicate...");
>                     RowResult result = results.next();
>                     System.out.println(result.getInt("key"));
>                     System.out.println(result.getString("value"));
>                 }
>             }
> {code}



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