Package com.salesforce.phoenix.schema.RowKeySchema

Examples of com.salesforce.phoenix.schema.RowKeySchema.RowKeySchemaBuilder


        }
        this.bucketNum = bucketNum;
        this.pkColumns = ImmutableList.copyOf(pkColumns);
        this.allColumns = ImmutableList.copyOf(allColumns);
       
        RowKeySchemaBuilder builder = new RowKeySchemaBuilder(pkColumns.size());
        // Two pass so that column order in column families matches overall column order
        // and to ensure that column family order is constant
        int maxExpectedSize = allColumns.length - pkColumns.size();
        // Maintain iteration order so that column families are ordered as they are listed
        Map<PName, List<PColumn>> familyMap = Maps.newLinkedHashMap();
        for (PColumn column : allColumns) {
            PName familyName = column.getFamilyName();
            if (familyName == null) {
                builder.addField(column, column.isNullable(), column.getColumnModifier());
            } else {
                List<PColumn> columnsInFamily = familyMap.get(familyName);
                if (columnsInFamily == null) {
                    columnsInFamily = Lists.newArrayListWithExpectedSize(maxExpectedSize);
                    familyMap.put(familyName, columnsInFamily);
                }
                columnsInFamily.add(column);
            }
        }
       
        this.rowKeySchema = builder.build();
        Iterator<Map.Entry<PName,List<PColumn>>> iterator = familyMap.entrySet().iterator();
        PColumnFamily[] families = new PColumnFamily[familyMap.size()];
        ImmutableMap.Builder<String, PColumnFamily> familyByString = ImmutableMap.builder();
        ImmutableSortedMap.Builder<byte[], PColumnFamily> familyByBytes = ImmutableSortedMap.orderedBy(Bytes.BYTES_COMPARATOR);
        for (int i = 0; i < families.length; i++) {
View Full Code Here


    }

    private static Collection<?> foreach(KeyRange[][] ranges, int[] widths, KeyRange keyRange,
            boolean expectedResult) {
        List<List<KeyRange>> slots = Lists.transform(Lists.newArrayList(ranges), ARRAY_TO_LIST);
        RowKeySchemaBuilder builder = new RowKeySchemaBuilder(10);
        for (final int width : widths) {
            if (width > 0) {
                builder.addField(new PDatum() {
                    @Override
                    public boolean isNullable() {
                        return false;
                    }
                    @Override
                    public PDataType getDataType() {
                        return PDataType.CHAR;
                    }
                    @Override
                    public Integer getByteSize() {
                        return width;
                    }
                    @Override
                    public Integer getMaxLength() {
                        return width;
                    }
                    @Override
                    public Integer getScale() {
                        return null;
                    }
                    @Override
                    public ColumnModifier getColumnModifier() {
                        return null;
                    }
                }, false, null);
            } else {
                builder.addField(new PDatum() {
                    @Override
                    public boolean isNullable() {
                        return false;
                    }
                    @Override
                    public PDataType getDataType() {
                        return PDataType.VARCHAR;
                    }
                    @Override
                    public Integer getByteSize() {
                        return width;
                    }
                    @Override
                    public Integer getMaxLength() {
                        return width;
                    }
                    @Override
                    public Integer getScale() {
                        return null;
                    }
                    @Override
                    public ColumnModifier getColumnModifier() {
                        return null;
                    }
                }, false, null);
            }
        }
        ScanRanges scanRanges = ScanRanges.create(slots, builder.build());
        return foreach(scanRanges, widths, keyRange, expectedResult);
    }
View Full Code Here

    private static Collection<?> foreach(KeyRange[][] ranges, int[] widths, byte[] lowerInclusive,
            byte[] upperExclusive, KeyRange[][] expectedRanges) {
        List<List<KeyRange>> slots = Lists.transform(Lists.newArrayList(ranges), ARRAY_TO_LIST);
        List<List<KeyRange>> expectedSlots = expectedRanges == null ? null : Lists.transform(Lists.newArrayList(expectedRanges), ARRAY_TO_LIST);
        RowKeySchemaBuilder builder = new RowKeySchemaBuilder(10);
        for (final int width: widths) {
            builder.addField(
                    new PDatum() {
                        @Override
                        public boolean isNullable() {
                            return width <= 0;
                        }
                        @Override
                        public PDataType getDataType() {
                            return width <= 0 ? PDataType.VARCHAR : PDataType.CHAR;
                        }
                        @Override
                        public Integer getByteSize() {
                            return width <= 0 ? null : width;
                        }
                        @Override
                        public Integer getMaxLength() {
                            return getByteSize();
                        }
                        @Override
                        public Integer getScale() {
                            return null;
                        }
                        @Override
                        public ColumnModifier getColumnModifier() {
                            return null;
                        }
                    }, width <= 0, null);
        }
        List<Object> ret = Lists.newArrayList();
        ret.add(new Object[] {slots, builder.build(), lowerInclusive, upperExclusive, expectedSlots});
        return ret;
    }
View Full Code Here

    private final List<Expectation> expectations;

    public SkipScanFilterTest(List<List<KeyRange>> cnf, int[] widths, List<Expectation> expectations) {
        this.expectations = expectations;
        this.cnf = cnf;
        RowKeySchemaBuilder builder = new RowKeySchemaBuilder(widths.length);
        for (final int width : widths) {
            builder.addField(
                new PDatum() {

                @Override
                public boolean isNullable() {
                    return width <= 0;
                }

                @Override
                public PDataType getDataType() {
                    return width <= 0 ? PDataType.VARCHAR : PDataType.CHAR;
                }

                @Override
                public Integer getByteSize() {
                    return width <= 0 ? null : width;
                }

                @Override
                public Integer getMaxLength() {
                    return getByteSize();
                }

                @Override
                public Integer getScale() {
                    return null;
                }

        @Override
        public ColumnModifier getColumnModifier() {
          return null;
        }
               
            }, width <= 0, null);
        }
        skipper = new SkipScanFilter(cnf, builder.build());
    }
View Full Code Here

    private final byte[] expectedKey;
    private final RowKeySchema schema;
    private final Bound bound;

    public ScanUtilTest(List<List<KeyRange>> slots, int[] widths, byte[] expectedKey, Bound bound) throws Exception {
        RowKeySchemaBuilder builder = new RowKeySchemaBuilder(widths.length);
        for (final int width : widths) {
            if (width > 0) {
                builder.addField(new PDatum() {
                    @Override
                    public boolean isNullable() {
                        return false;
                    }
                    @Override
                    public PDataType getDataType() {
                        return PDataType.CHAR;
                    }
                    @Override
                    public Integer getByteSize() {
                        return width;
                    }
                    @Override
                    public Integer getMaxLength() {
                        return width;
                    }
                    @Override
                    public Integer getScale() {
                        return null;
                    }
                    @Override
                    public ColumnModifier getColumnModifier() {
                        return null;
                    }
                }, false, null);
            } else {
                builder.addField(new PDatum() {
                    @Override
                    public boolean isNullable() {
                        return false;
                    }
                    @Override
                    public PDataType getDataType() {
                        return PDataType.VARCHAR;
                    }
                    @Override
                    public Integer getByteSize() {
                        return null;
                    }
                    @Override
                    public Integer getMaxLength() {
                        return null;
                    }
                    @Override
                    public Integer getScale() {
                        return null;
                    }
                    @Override
                    public ColumnModifier getColumnModifier() {
                        return null;
                    }
                }, false, null);
            }
        }
        this.schema = builder.build();
        this.slots = slots;
        this.expectedKey = expectedKey;
        this.bound = bound;
    }
View Full Code Here

                }));
        return testCases;
    }

    private static RowKeySchema buildSchema(int[] widths) {
        RowKeySchemaBuilder builder = new RowKeySchemaBuilder(10);
        for (final int width : widths) {
            builder.addField(new PDatum() {
                @Override
                public boolean isNullable() {
                    return false;
                }
                @Override
                public PDataType getDataType() {
                    return PDataType.CHAR;
                }
                @Override
                public Integer getByteSize() {
                    return width;
                }
                @Override
                public Integer getMaxLength() {
                    return width;
                }
                @Override
                public Integer getScale() {
                    return null;
                }
                @Override
                public ColumnModifier getColumnModifier() {
                    return null;
                }
            }, false, null);
        }
        return builder.build();
    }
View Full Code Here

TOP

Related Classes of com.salesforce.phoenix.schema.RowKeySchema.RowKeySchemaBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.