diff --git a/bigquery/system-test/tables.test.js b/bigquery/system-test/tables.test.js index 5c056808c4..71e65ab052 100644 --- a/bigquery/system-test/tables.test.js +++ b/bigquery/system-test/tables.test.js @@ -36,12 +36,10 @@ var options = { schema: 'Name:string, Age:integer, Weight:float, IsMagic:boolean', rows: rows }; -var copyOptions = { - srcDataset: options.dataset, - srcTable: options.table, - destDataset: generateUuid(), - destTable: generateUuid() -}; +var srcDataset = options.dataset; +var srcTable = options.table; +var destDataset = generateUuid(); +var destTable = generateUuid(); describe('bigquery:tables', function () { before(function (done) { @@ -52,10 +50,10 @@ describe('bigquery:tables', function () { bucket.upload(options.localFilePath, function (err) { assert.ifError(err, 'file upload succeeded'); // Create srcDataset - bigquery.createDataset(copyOptions.srcDataset, function (err) { + bigquery.createDataset(srcDataset, function (err) { assert.ifError(err, 'srcDataset creation succeeded'); // Create destDataset - bigquery.createDataset(copyOptions.destDataset, function (err) { + bigquery.createDataset(destDataset, function (err) { assert.ifError(err, 'destDataset creation succeeded'); done(); }); @@ -66,9 +64,9 @@ describe('bigquery:tables', function () { after(function (done) { // Delete srcDataset - bigquery.dataset(copyOptions.srcDataset).delete({ force: true }, function () { + bigquery.dataset(srcDataset).delete({ force: true }, function () { // Delete destDataset - bigquery.dataset(copyOptions.destDataset).delete({ force: true }, function () { + bigquery.dataset(destDataset).delete({ force: true }, function () { // Delete files storage.bucket(options.bucket).deleteFiles({ force: true }, function (err) { if (err) { @@ -171,16 +169,16 @@ describe('bigquery:tables', function () { describe('copyTable', function () { it('should copy a table between datasets', function (done) { - program.copyTable(copyOptions, function (err, metadata) { + program.copyTable(srcDataset, srcTable, destDataset, destTable, function (err, metadata) { assert.equal(err, null); assert.deepEqual(metadata.status, { state: 'DONE' }); - bigquery.dataset(copyOptions.srcDataset).table(copyOptions.srcTable).exists( + bigquery.dataset(srcDataset).table(srcTable).exists( function (err, exists) { assert.equal(err, null); assert.equal(exists, true, 'srcTable exists'); - bigquery.dataset(copyOptions.destDataset).table(copyOptions.destTable).exists( + bigquery.dataset(destDataset).table(destTable).exists( function (err, exists) { assert.equal(err, null); assert.equal(exists, true, 'destTable exists'); diff --git a/bigquery/tables.js b/bigquery/tables.js index 1ab31df4a0..008497bc01 100644 --- a/bigquery/tables.js +++ b/bigquery/tables.js @@ -104,22 +104,13 @@ function deleteTable (options, callback) { } // [END delete_table] -// [START copy_table] -/** - * Create a copy of an existing table - * - * @param {object} options Configuration options. - * @param {string} options.srcDataset The source dataset ID. - * @param {string} options.srcTable The source table ID. - * @param {string} options.destDataset The destination dataset ID. - * @param {string} options.destTable The destination table ID. Will be created if it doesn't exist. - * @param {function} callback The callback function. - */ -function copyTable (options, callback) { - var srcTable = bigquery.dataset(options.srcDataset).table(options.srcTable); - var destTable = bigquery.dataset(options.destDataset).table(options.destTable); +function copyTable (srcDataset, srcTable, destDataset, destTable, callback) { + var bigquery = BigQuery(); + + var srcTableObj = bigquery.dataset(srcDataset).table(srcTable); + var destTableObj = bigquery.dataset(destDataset).table(destTable); - srcTable.copy(destTable, function (err, job) { + srcTableObj.copy(destTableObj, function (err, job) { if (err) { return callback(err); } @@ -133,7 +124,6 @@ function copyTable (options, callback) { }); }); } -// [END copy_table] // [START import_file] /** @@ -272,7 +262,10 @@ cli 'Make a copy of an existing table.', {}, function (options) { program.copyTable( - utils.pick(options, ['srcDataset', 'srcTable', 'destDataset', 'destTable']), + options.srcDataset, + options.srcTable, + options.destDataset, + options.destTable, utils.makeHandler() ); } diff --git a/bigquery/test/tables.test.js b/bigquery/test/tables.test.js index 1a24e3ae2b..267cc27886 100644 --- a/bigquery/test/tables.test.js +++ b/bigquery/test/tables.test.js @@ -274,18 +274,11 @@ describe('bigquery:tables', function () { }); describe('copyTable', function () { - var options = { - srcDataset: srcDataset, - srcTable: srcTable, - destDataset: destDataset, - destTable: destTable - }; - it('should copy a table', function () { var sample = getSample(); var callback = sinon.stub(); - sample.program.copyTable(options, callback); + sample.program.copyTable(srcDataset, srcTable, destDataset, destTable, callback); assert.equal(sample.mocks.table.copy.calledOnce, true); assert.deepEqual( @@ -305,7 +298,7 @@ describe('bigquery:tables', function () { var callback = sinon.stub(); sample.mocks.table.copy.yields(error); - sample.program.copyTable(options, callback); + sample.program.copyTable(srcDataset, srcTable, destDataset, destTable, callback); assert.equal(callback.calledOnce, true); assert.deepEqual(callback.firstCall.args, [error]); @@ -437,12 +430,9 @@ describe('bigquery:tables', function () { program.main(['copy', srcDataset, srcTable, destDataset, destTable]); assert.equal(program.copyTable.calledOnce, true); - assert.deepEqual(program.copyTable.firstCall.args.slice(0, -1), [{ - srcDataset: srcDataset, - srcTable: srcTable, - destDataset: destDataset, - destTable: destTable - }]); + assert.deepEqual(program.copyTable.firstCall.args.slice(0, -1), + [srcDataset, srcTable, destDataset, destTable] + ); }); it('should call exportTableToGCS', function () {