use of com.airbnb.spinaltap.mysql.mutation.schema.Column in project SpinalTap by airbnb.
the class MysqlMutationMapper method zip.
protected static ImmutableMap<String, Column> zip(Serializable[] row, Collection<ColumnMetadata> columns) {
if (row.length != columns.size()) {
log.error("Row length {} and column length {} don't match", row.length, columns.size());
}
ImmutableMap.Builder<String, Column> builder = ImmutableMap.builder();
Iterator<ColumnMetadata> columnIterator = columns.iterator();
for (int position = 0; position < row.length && columnIterator.hasNext(); position++) {
ColumnMetadata col = columnIterator.next();
builder.put(col.getName(), new Column(col, row[position]));
}
return builder.build();
}
use of com.airbnb.spinaltap.mysql.mutation.schema.Column in project SpinalTap by airbnb.
the class RowTest method testNoPrimaryKey.
@Test
public void testNoPrimaryKey() throws Exception {
Table table = new Table(TABLE_ID, TABLE_NAME, DB_NAME, ImmutableList.of(new ColumnMetadata(ID_COLUMN, ColumnDataType.LONGLONG, false, 0)), ImmutableList.of());
Row row = new Row(table, ImmutableMap.of(ID_COLUMN, new Column(table.getColumns().get(ID_COLUMN), 1)));
assertNull(row.getPrimaryKeyValue());
}
use of com.airbnb.spinaltap.mysql.mutation.schema.Column in project SpinalTap by airbnb.
the class KafkaDestinationTest method createMutation.
private Mutation createMutation(MutationType type) {
Mapper<com.airbnb.spinaltap.Mutation<?>, ? extends TBase<?, ?>> thriftMutationMapper = ThriftMutationMapper.create("spinaltap");
Table table = new Table(0L, TABLE, DATABASE, ImmutableList.of(new ColumnMetadata("id", ColumnDataType.LONGLONG, true, 0)), ImmutableList.of("id"));
MysqlMutationMetadata metadata = new MysqlMutationMetadata(new DataSource(HOSTNAME, 0, "service"), new BinlogFilePos(), table, 0L, 0L, 0L, null, null, 0L, 0);
Row row = new Row(table, ImmutableMap.of("id", new Column(new ColumnMetadata("id", ColumnDataType.LONGLONG, true, 0), 1L)));
MysqlMutation mutation;
switch(type) {
case INSERT:
mutation = new MysqlInsertMutation(metadata, row);
break;
case UPDATE:
mutation = new MysqlUpdateMutation(metadata, row, row);
break;
case DELETE:
mutation = new MysqlDeleteMutation(metadata, row);
break;
default:
mutation = null;
}
return (Mutation) (thriftMutationMapper.map(mutation));
}
use of com.airbnb.spinaltap.mysql.mutation.schema.Column in project SpinalTap by airbnb.
the class MysqlKeyProviderTest method testGetNullKey.
@Test
public void testGetNullKey() throws Exception {
Row row = new Row(TABLE, ImmutableMap.of(ID_COLUMN, new Column(TABLE.getColumns().get(ID_COLUMN), null)));
MysqlMutation mutation = new MysqlInsertMutation(MUTATION_METADATA, row);
assertEquals("test:users:null", MysqlKeyProvider.INSTANCE.get(mutation));
}
Aggregations