• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..18-Oct-2021-

INTERNALS.mdH A D18-Oct-20212.9 KiB7253

README.mdH A D18-Oct-20211.5 KiB4134

db.goH A D18-Oct-202132.2 KiB1,200917

db_eval.goH A D18-Oct-202122.6 KiB938800

db_query.goH A D18-Oct-202127.2 KiB1,105841

db_test.goH A D18-Oct-202118.6 KiB674590

funcs.goH A D18-Oct-20216.9 KiB234180

inmem.goH A D18-Oct-202126.6 KiB988738

integration_test.goH A D18-Oct-202148.5 KiB1,5511,346

README.md

1This directory contains `spannertest`, an in-memory fake Cloud Spanner. A sibling
2directory, `spansql`, contains types and parser for the Cloud Spanner SQL dialect.
3
4`spansql` is reusable for anything that interacts with Cloud Spanner on a
5syntactic basis, such as tools for handling Spanner schema (DDL).
6
7`spannertest` builds on `spansql` for testing code that uses Cloud Spanner client
8libraries.
9
10Neither of these packages aims to be performant nor exact replicas of the
11production Cloud Spanner. They are reasonable for building tools, or writing
12unit or integration tests. Full-scale performance testing or serious workloads
13should use the production Cloud Spanner instead.
14
15See [INTERNALS.md](INTERNALS.md) for an explanation of the implementation.
16
17Here's a list of features that are missing or incomplete. It is roughly ordered
18by ascending esotericism:
19
20- expression functions
21- NUMERIC
22- JSON
23- more aggregation functions
24- SELECT HAVING
25- more literal types
26- expressions that return null for generated columns
27- generated columns referencing other generated columns
28- checking dependencies on a generated column before deleting a column
29- expression type casting, coercion
30- multiple joins
31- subselects
32- case insensitivity of table and column names and query aliases
33- transaction simulation
34- FOREIGN KEY and CHECK constraints
35- INSERT DML statements
36- set operations (UNION, INTERSECT, EXCEPT)
37- STRUCT types
38- partition support
39- conditional expressions
40- table sampling (implementation)
41