or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
golangpkg:golang/cloud.google.com/go/spanner@v1.87.0

docs

client.mddml.mdindex.mdkeys.mdlow-level.mdprotobuf-types.mdreads.mdtesting.mdtransactions.mdtypes.mdwrites.md
tile.json

tessl/golang-cloud-google-com--go--spanner

tessl install tessl/golang-cloud-google-com--go--spanner@1.87.2

Official Google Cloud Spanner client library for Go providing comprehensive database operations, transactions, and admin functionality

testing.mddocs/

Testing Support

In-memory Spanner test server and SQL parser for testing and development.

spannertest Package

In-memory implementation of Spanner for testing:

import "cloud.google.com/go/spanner/spannertest"

Server

func NewServer() (*Server, error)

type Server struct {
    // Has unexported fields
}

func (s *Server) Addr() string
func (s *Server) Close()

Example:

import (
    "cloud.google.com/go/spanner"
    "cloud.google.com/go/spanner/spannertest"
)

func TestMyCode(t *testing.T) {
    srv, err := spannertest.NewServer()
    if err != nil {
        t.Fatal(err)
    }
    defer srv.Close()
    
    // Create client pointing to test server
    os.Setenv("SPANNER_EMULATOR_HOST", srv.Addr())
    
    client, err := spanner.NewClient(ctx, "projects/test/instances/test/databases/test")
    if err != nil {
        t.Fatal(err)
    }
    defer client.Close()
    
    // Use client for testing
}

spansql Package

SQL parser for Spanner SQL dialect:

import "cloud.google.com/go/spanner/spansql"

Parsing Functions

func ParseDDL(filename, s string) (*DDL, error)
func ParseDDLStmt(s string) (DDLStmt, error)
func ParseQuery(s string) (Query, error)
func ParseDMLStmt(s string) (DMLStmt, error)
func ParseExpr(s string) (Expr, error)
func IsKeyword(id string) bool

Example:

import "cloud.google.com/go/spanner/spansql"

ddl, err := spansql.ParseDDL("schema.sql", `
    CREATE TABLE Users (
        ID INT64 NOT NULL,
        Name STRING(100),
    ) PRIMARY KEY (ID)
`)
if err != nil {
    log.Fatal(err)
}

for _, stmt := range ddl.List {
    fmt.Printf("Statement: %v\n", stmt)
}

query, err := spansql.ParseQuery("SELECT * FROM Users WHERE ID > 100")
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Query: %v\n", query)

Types

The spansql package provides AST types for representing parsed SQL. See package documentation for complete type definitions.

For full API reference, see the spansql package documentation.