Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an in-memory emulator for spanner #1181

Closed
jeanbza opened this issue Oct 16, 2018 · 6 comments
Closed

Add an in-memory emulator for spanner #1181

jeanbza opened this issue Oct 16, 2018 · 6 comments
Assignees
Labels
api: spanner Issues related to the Spanner API. help wanted We'd love to have community involvement on this issue. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.

Comments

@jeanbza
Copy link
Member

jeanbza commented Oct 16, 2018

Details:

  • Very basic.
  • When making queries like SELECT, user should provide the expected output instead of trying to interpret SQL.
@jeanbza jeanbza added type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design. api: spanner Issues related to the Spanner API. help wanted We'd love to have community involvement on this issue. labels Oct 16, 2018
@jeanbza jeanbza closed this as completed Apr 24, 2019
@lzlicd
Copy link

lzlicd commented Jun 24, 2019

Just curious do we have in-memory emulator currently?

@jeanbza
Copy link
Member Author

jeanbza commented Jun 24, 2019

We do not, and we do not plan to in the near future.

@jeanbza jeanbza reopened this Jul 23, 2019
@tmc
Copy link
Contributor

tmc commented Jul 23, 2019

@jadekler does reopening indicate that there are plans for this?

@dsymonds
Copy link
Contributor

Yes, I've got something coming...

gopherbot pushed a commit that referenced this issue Jul 30, 2019
This will form a basis for an in-memory fake Spanner, but is also
reusable for building tools.

Updates #1181.

Change-Id: If262e555a867e343e2f5582d4443a0bbda49eb06
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43010
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Jul 30, 2019
…nner

This contains a primitive Spanner simulation for use with tests.
It is far from complete (see README.md), but is sufficient for many use
cases already.

Updates #1181.

Change-Id: I4375a511363d643e705011042f0e2825aef04fec
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43011
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Jul 31, 2019
Updates #1181.

Change-Id: I369b2cbadff6f7434ea79e878a57b186359f47cd
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43231
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jean de Klerk <deklerk@google.com>
gopherbot pushed a commit that referenced this issue Jul 31, 2019
… emulator

These are sensible to use even for use with an emulator.

Updates #1181.

Change-Id: I5664f98ca2a700abe976cbbd587e8f2ee291d01b
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43232
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jean de Klerk <deklerk@google.com>
gopherbot pushed a commit that referenced this issue Jul 31, 2019
This simplifies readStream and helps prepare for support for array
types.

Updates #1181.

Change-Id: Iaf7a28f62fb18831ade8cf2459f9240e9388e211
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43233
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jean de Klerk <deklerk@google.com>
gopherbot pushed a commit that referenced this issue Aug 1, 2019
Unsurprisingly, this is very similar to Insert and Update.

Updates #1181.

Change-Id: I31c634929ab7a58a426eea875de0b603e0a5f0e7
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43230
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 1, 2019
This is restricted to new columns without a NOT NULL qualification.

Updates #1181.

Change-Id: I30533a06fbec9de05a1383a60a7b26f198f1cc4c
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43235
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 1, 2019
This supports them fully for storage and retrieval.

Also fix a little lexer glitch that didn't accept operators at the end
of the input.

Updates #1181.

Change-Id: I617a99cbdf13ebbcbd79d0ed801b858d47cce37a
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43236
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 1, 2019
Also suppress some logging that is mostly useful for developing this
package rather than using it.

Updates #1181.

Change-Id: I1db17b340aaef2e44b21522bf8441960d15189e2
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43234
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 2, 2019
Updates #1181.

Change-Id: I06f2ea0294bf907ce5547d01f91d062e02c8ac4d
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43390
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 5, 2019
Updates #1181.

Change-Id: Ic19212954a61d03d12bddac2128459dc93593bb0
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43391
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 6, 2019
This doesn't have any bearing on the simulation, except for possible
future checking of the primary key.

Updates #1181.

Change-Id: I8c902bd91d7b9a638cb1dcba8eaa33a2dcc7948b
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43394
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
Reviewed-by: kokoro <noreply+kokoro@google.com>
gopherbot pushed a commit that referenced this issue Aug 7, 2019
…ements

This doesn't have any impact on spannertest.

Updates #1181.

Change-Id: I01f3c9c7646c9c99e6549fcd9e0257e498ce618c
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43395
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 7, 2019
Updates #1181.

Change-Id: If00b25a6269ca3e55086d64b3624ded89b3217fb
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43393
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 7, 2019
This only parses it. It isn't implemented in spannertest.

Updates #1181.

Change-Id: I5bded4c726d8106e09437c94acded4292eda6246
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43396
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 7, 2019
The implementation in spannertest only supports COUNT(*) in a SELECT;
other functions and aggregations are not yet supported. In particular,
other aggregations will require some more restructuring of evalSelect.

Updates #1181.

Change-Id: Ifc859647cda57895f6940219379a91091654b4e9
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43590
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 7, 2019
This is used as a keep-alive by Spanner client libraries.

Also implement session timestamps (creation, last use),
and report them from CreateSession and GetSession.

Updates #1181.

Change-Id: Ifa855a12f17a6d5c0cdcabaa7c84034a19c1c468
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43630
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
gopherbot pushed a commit that referenced this issue Aug 8, 2019
This supports them fully for storage and retrieval.

Also add a little bit of internal documentation about value
representation inside this package.

Updates #1181.

Change-Id: Ia2fb3b2ea89f22f60f590934fcf72c722bd8622d
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43710
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
@dsymonds
Copy link
Contributor

dsymonds commented Aug 9, 2019

Hey, @jadekler, we can probably close this bug now that the emulator is in a tagged release. I'm still working on improving it, but this issue seems satisfied.

@jeanbza
Copy link
Member Author

jeanbza commented Aug 9, 2019

SG

@jeanbza jeanbza closed this as completed Aug 9, 2019
gopherbot pushed a commit that referenced this issue Aug 10, 2019
The grammar for index creation is a little annoying.

Updates #1181.

Change-Id: I945bd0b21e15e246751219bf2c8ecab745cd2441
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/43790
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner Issues related to the Spanner API. help wanted We'd love to have community involvement on this issue. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.
Projects
None yet
Development

No branches or pull requests

4 participants