Skip to content
This repository was archived by the owner on Mar 4, 2026. It is now read-only.

Releases: googleapis/nodejs-spanner

@google-cloud/spanner v0.2.0

24 Oct 04:39

Choose a tag to compare

release level

⚠️ Breaking Changes

Transactional promises removed for a minute

database.runTransaction() no longer natively supports promise uses. Why?

spanner.date() will throw if treated as the Date constructor

Features

  • deleteRows(), read(), and createReadStream() accept composite keys. (#2141)
  • Introduce spanner.double() type. (#2064)

Fixes

  • Fix keep-alive implementation. (#2071)
  • Re-factor session pooling. (#2127)
  • Ensure API requests are made for the correct Transaction. (#2148)

@google-cloud/spanner v0.1.2

24 Oct 04:41

Choose a tag to compare

release level

Bugfixes

  • Fix keepAlive implementation. (#2071)

@google-cloud/spanner v0.1.0

24 Oct 04:34

Choose a tag to compare

release level

Hello, Cloud Spanner!

Cloud Spanner is a highly scalable, transactional, managed, NewSQL database service. Cloud Spanner solves the need for a horizontally-scaling database with consistent global transaction and SQL semantics. With Cloud Spanner you don't need to choose between consistency and horizontal scaling — you get both.

var spanner = require('@google-cloud/spanner')({
  projectId: 'grape-spaceship-123',
  keyFilename: '/path/to/keyfile.json'
});

var instance = spanner.instance('my-instance');
var database = instance.database('my-database');

// Create a table.
var schema =
  'CREATE TABLE Singers (' +
  '  SingerId INT64 NOT NULL,' +
  '  FirstName STRING(1024),' +
  '  LastName STRING(1024),' +
  '  SingerInfo BYTES(MAX),' +
  ') PRIMARY KEY(SingerId)';

database.createTable(schema, function(err, table, operation) {
  if (err) {
    // Error handling omitted.
  }

  operation
    .on('error', function(err) {})
    .on('complete', function() {
      // Table created successfully.
    });
});

// Insert data into the table.
var table = database.table('Singers');

table.insert({
  SingerId: 10,
  FirstName: 'Eddie',
  LastName: 'Wilson'
}, function(err) {
  if (!err) {
    // Row inserted successfully.
  }
});

// Run a query as a readable object stream.
database.runStream('SELECT * FROM Singers')
  .on('error', function(err) {})
  .on('data', function(row) {
    // row.toJSON() = {
    //   SingerId: 10,
    //   FirstName: 'Eddie',
    //   LastName: 'Wilson'
    // }
  }
  })
  .on('end', function() {
    // All results retrieved.
  });