@@ -152,8 +152,10 @@ public boolean ensureAuthorizations(final String clientUser, final String... aut
152152 @ Override
153153 public RowWriter createWriter (final Index index , final InternalDataAdapter <?> adapter ) {
154154 final boolean isDataIndex = DataIndexUtils .isDataIndex (index .getName ());
155- final String qName = getQualifiedTableName (index .getName ());
156-
155+ String qName = getQualifiedTableName (index .getName ());
156+ if (isDataIndex ) {
157+ qName = adapter .getTypeName () + "_" + qName ;
158+ }
157159 final DynamoDBWriter writer = new DynamoDBWriter (client , qName , isDataIndex );
158160
159161 createTable (qName , isDataIndex );
@@ -167,11 +169,20 @@ public RowWriter createDataIndexWriter(final InternalDataAdapter<?> adapter) {
167169
168170 @ Override
169171 public void delete (final DataIndexReaderParams readerParams ) {
170- deleteRowsFromDataIndex (readerParams .getDataIds (), readerParams .getAdapterId ());
172+ final String typeName =
173+ readerParams .getInternalAdapterStore ().getTypeName (readerParams .getAdapterId ());
174+ if (typeName == null ) {
175+ return ;
176+ }
177+ deleteRowsFromDataIndex (readerParams .getDataIds (), readerParams .getAdapterId (), typeName );
171178 }
172179
173- public void deleteRowsFromDataIndex (final byte [][] dataIds , final short adapterId ) {
174- final String tableName = getQualifiedTableName (DataIndexUtils .DATA_ID_INDEX .getName ());
180+ public void deleteRowsFromDataIndex (
181+ final byte [][] dataIds ,
182+ final short adapterId ,
183+ final String typeName ) {
184+ final String tableName =
185+ typeName + "_" + getQualifiedTableName (DataIndexUtils .DATA_ID_INDEX .getName ());
175186 final Iterator <byte []> dataIdIterator = Arrays .stream (dataIds ).iterator ();
176187 while (dataIdIterator .hasNext ()) {
177188 final List <WriteRequest > deleteRequests = new ArrayList <>();
@@ -192,6 +203,11 @@ public void deleteRowsFromDataIndex(final byte[][] dataIds, final short adapterI
192203
193204 @ Override
194205 public RowReader <GeoWaveRow > createReader (final DataIndexReaderParams readerParams ) {
206+ final String typeName =
207+ readerParams .getInternalAdapterStore ().getTypeName (readerParams .getAdapterId ());
208+ if (typeName == null ) {
209+ return new RowReaderWrapper <>(new CloseableIterator .Empty <GeoWaveRow >());
210+ }
195211 // TODO use authorizations if provided
196212 byte [][] dataIds ;
197213 if (readerParams .getDataIds () != null ) {
@@ -207,10 +223,13 @@ public RowReader<GeoWaveRow> createReader(final DataIndexReaderParams readerPara
207223 }
208224 return new RowReaderWrapper <>(
209225 new CloseableIterator .Wrapper <>(
210- getRowsFromDataIndex (dataIds , readerParams .getAdapterId ())));
226+ getRowsFromDataIndex (dataIds , readerParams .getAdapterId (), typeName )));
211227 }
212228
213- public Iterator <GeoWaveRow > getRowsFromDataIndex (final byte [][] dataIds , final short adapterId ) {
229+ public Iterator <GeoWaveRow > getRowsFromDataIndex (
230+ final byte [][] dataIds ,
231+ final short adapterId ,
232+ final String typeName ) {
214233 final Map <ByteArray , GeoWaveRow > resultMap = new HashMap <>();
215234 final Iterator <byte []> dataIdIterator = Arrays .stream (dataIds ).iterator ();
216235 while (dataIdIterator .hasNext ()) {
@@ -227,7 +246,7 @@ public Iterator<GeoWaveRow> getRowsFromDataIndex(final byte[][] dataIds, final s
227246 BatchGetItemResult result =
228247 getResults (
229248 Collections .singletonMap (
230- getQualifiedTableName (DataIndexUtils .DATA_ID_INDEX .getName ()),
249+ typeName + "_" + getQualifiedTableName (DataIndexUtils .DATA_ID_INDEX .getName ()),
231250 new KeysAndAttributes ().withKeys (dataIdsForRequest )),
232251 adapterId ,
233252 resultMap );
0 commit comments