@Test public void testMemoryStretch() throws Exception { if (System.getProperty("questdb.enable_heavy_tests") != null) { TestUtils.assertMemoryLeak(() -> { ArrayColumnTypes keyTypes = new ArrayColumnTypes(); ColumnTypes valueTypes = new SingleColumnType(ColumnType.LONG); int N = 1500000; for (int i = 0; i < N; i++) { keyTypes.add(ColumnType.STRING); } final Rnd rnd = new Rnd(); try (FastMap map = new FastMap(Numbers.SIZE_1MB, keyTypes, valueTypes, 1024, 0.5f, 1)) { try { MapKey key = map.withKey(); for (int i = 0; i < N; i++) { key.putStr(rnd.nextChars(1024)); } key.createValue(); Assert.fail(); } catch (CairoException e) { TestUtils.assertContains(e.getMessage(), "row data is too large"); } } }); } }
@Override public MapKey withKey() { return key.init(); }
FastMap implements Map { @Override public MapKey withKey() { return key.init(); } }
FastMap implements Map { @Override public MapKey withKey() { return key.init(); } FastMap(int pageSize,
                   @Transient @NotNull ColumnTypes keyTypes,
                   int keyCapacity,
                   double loadFactor,
                   int maxResizes
    );  FastMap(int pageSize,
                   @Transient @NotNull ColumnTypes keyTypes,
                   @Transient @Nullable ColumnTypes valueTypes,
                   int keyCapacity,
                   double loadFactor,
                   int maxResizes
    );   FastMap(int pageSize,
            @Transient ColumnTypes keyTypes,
            @Transient ColumnTypes valueTypes,
            int keyCapacity,
            double loadFactor,
            HashFunction hashFunction,
            int maxResizes

    ); }
FastMap implements Map { @Override public MapKey withKey() { return key.init(); } FastMap(int pageSize,
                   @Transient @NotNull ColumnTypes keyTypes,
                   int keyCapacity,
                   double loadFactor,
                   int maxResizes
    );  FastMap(int pageSize,
                   @Transient @NotNull ColumnTypes keyTypes,
                   @Transient @Nullable ColumnTypes valueTypes,
                   int keyCapacity,
                   double loadFactor,
                   int maxResizes
    );   FastMap(int pageSize,
            @Transient ColumnTypes keyTypes,
            @Transient ColumnTypes valueTypes,
            int keyCapacity,
            double loadFactor,
            HashFunction hashFunction,
            int maxResizes

    ); @Override void clear(); @Override final void close(); @Override RecordCursor getCursor(); @Override MapRecord getRecord(); @Override long size(); @Override MapValue valueAt(long address); @Override MapKey withKey(); }
FastMap implements Map { @Override public MapKey withKey() { return key.init(); } FastMap(int pageSize,
                   @Transient @NotNull ColumnTypes keyTypes,
                   int keyCapacity,
                   double loadFactor,
                   int maxResizes
    );  FastMap(int pageSize,
                   @Transient @NotNull ColumnTypes keyTypes,
                   @Transient @Nullable ColumnTypes valueTypes,
                   int keyCapacity,
                   double loadFactor,
                   int maxResizes
    );   FastMap(int pageSize,
            @Transient ColumnTypes keyTypes,
            @Transient ColumnTypes valueTypes,
            int keyCapacity,
            double loadFactor,
            HashFunction hashFunction,
            int maxResizes

    ); @Override void clear(); @Override final void close(); @Override RecordCursor getCursor(); @Override MapRecord getRecord(); @Override long size(); @Override MapValue valueAt(long address); @Override MapKey withKey();  }