Releases: googleapis/nodejs-spanner
@google-cloud/spanner v0.4.4
@google-cloud/spanner v0.4.3
@google-cloud/spanner v0.4.0
⚠️ Breaking Changes
Transactional promises are on hold
Our original implementation has been causing confusion, so we decided to re-think our approach. For now, all transactions must be run in "callback-style", which they kind of were already. Please chime in to our issue and help us land on a solution that works for all.
@google-cloud/spanner v0.3.0
⚠️ Breaking Changes!
Dropped support for Node v0.12.x
We've officially dropped support for Node v0.12.x in all of our APIs. It may still work, but it is not officially supported and may stop working at any time.
@google-cloud/spanner v0.2.0
⚠️ 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()
, andcreateReadStream()
accept composite keys. (#2141)- Introduce
spanner.double()
type. (#2064)
Fixes
@google-cloud/spanner v0.1.2
@google-cloud/spanner v0.1.0
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.
});