in lib/protocol/encoder.js [19:82]
encodeCreateTable: function (params) {
if (!params.reservedThroughput || !params.tableOptions) {
throw new Error('reservedThroughput and tableOptions are required');
}
var properties = {};
var primaryKey = [];
TableStore.util.arrayEach(params.tableMeta.primaryKey, function(pk) {
primaryKey.push({
name: pk.name,
type: TableStore.PrimaryKeyType[pk.type] || pk.type,
option: TableStore.PrimaryKeyOption[pk.option] || pk.option
});
});
properties.tableMeta = {
tableName: params.tableMeta.tableName,
primaryKey: primaryKey
};
properties.reservedThroughput = {
capacityUnit: params.reservedThroughput.capacityUnit
};
if (Object.prototype.toString.call(params.tableMeta.definedColumn) === '[object Array]') {
properties.tableMeta.definedColumn = params.tableMeta.definedColumn;
}
if (params.tableOptions) {
properties.tableOptions = {
timeToLive: params.tableOptions.timeToLive,
maxVersions: params.tableOptions.maxVersions,
allowUpdate: params.tableOptions.allowUpdate
};
if (params.tableOptions.maxTimeDeviation) {
properties.tableOptions.deviationCellVersionInSec =
params.tableOptions.maxTimeDeviation
}
}
if (params.streamSpecification) {
properties.streamSpec = {
enableStream: params.streamSpecification.enableStream,
expirationTime: params.streamSpecification.expirationTime
}
}
if (Object.prototype.toString.call(params.indexMetas) === '[object Array]') {
var indexMetas = [];
TableStore.util.arrayEach(params.indexMetas, function(meta) {
indexMetas.push({
name: meta.name,
primaryKey: meta.primaryKey,
definedColumn: meta.definedColumn,
indexUpdateMode: meta.indexUpdateMode || TableStore.IndexUpdateMode.IUM_ASYNC_INDEX,//默认增量
indexType: meta.indexType || TableStore.IndexType.IT_GLOBAL_INDEX,//IT_GLOBAL_INDEX
});
});
properties.indexMetas = indexMetas;
}
var request = tsProtos.CreateTableRequest.create(properties);
return request;
},