feat(spanner): Improve and extend support for Spanner Client#247
feat(spanner): Improve and extend support for Spanner Client#247aseering wants to merge 4 commits intoGoogleCloudPlatform:mainfrom
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
474ad8d to
2c8df8a
Compare
IsmailMehdi
left a comment
There was a problem hiding this comment.
it would be good to have a run config that showcases the emulator.
IsmailMehdi
left a comment
There was a problem hiding this comment.
please take a look at the style issues.
Replaces the SQLAlchemy-based implementation with a native Google Cloud Spanner client to improve stability and support for PostgreSQL dialects. - Implements native and using queries. - Adds robust with multi-pass retry logic for Foreign Key cycles and proper quoting for case-sensitive Postgres tables. - Implements high-performance using the Mutation API with type-aware processing. - Adds support for .
- Updates SQLGenBasePromptGenerator to detect Spanner dialect (GoogleSQL vs PostgreSQL) from db config. - Adds specific prompt templates for Spanner GoogleSQL (using backticks) and Spanner PostgreSQL (using quotes).
2c8df8a to
5302dc2
Compare
|
Resolved the style issues. What do you think? Ready to submit? If it's ok with you, I'd like to do a follow-up with Emulator run-config examples. I've been testing and playing with it locally some more, and am thinking to get this core-Spanner work in now and Emulator clean-ups as a follow-on CL. (One key challenge w.r.t. the Emulator is that Spanner's Emulator is purely in-memory -- no disk persistence -- and it never frees dropped or deleted data. So you effectively have to run it as "create a database, load the schema, load the data, run some test queries; then close down the whole Emulator process and start a whole new one for the next database", lest you run out of RAM. This requires wiring up the logic for database setup / tear-down, which we have for DDL, for all databases -- but right now it's only in place (as far as I can tell?) for datasets that contain DDL statements, so some of my dataset updates are also required to make the Emulator work. |
IsmailMehdi
left a comment
There was a problem hiding this comment.
please remove the added import evalbench.xxx
|
The evalbench.* changes were requested by the linter. Should I look into a linter config change, if that's not as desired? |
|
Yes, that would be great. Which linter ?
…On Mon, Mar 9, 2026 at 9:08 AM Adam Seering ***@***.***> wrote:
*aseering* left a comment (GoogleCloudPlatform/evalbench#247)
<#247 (comment)>
The evalbench.* changes were requested by the linter. Should I look into a
linter config change, if that's not as desired?
—
Reply to this email directly, view it on GitHub
<#247 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGVYHZMA6XZ5SXFIRH77EL4P3T7FAVCNFSM6AAAAACV3DVYSSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DAMRUHA4TQNJXGA>
.
You are receiving this because your review was requested.Message ID:
***@***.***>
|
|
ah, I see: It's not which linter, it's running the linter without setting PYTHONPATH the same way that many of the scripts in this repo do. (I guess(?) the default assumption is that things in a Git repo should be relative to the root of that repo.) |
- Update .pycodestyle to ignore W504 - Format files with autopep8 to resolve spacing, trailing whitespace, and E704 errors - Update `evalbench/test/mongodb_test.py` to match expected data format - Update `evalbench/test/spanner_test.py` to use `batch_execute` for DDL statements
907b0b6 to
cc119f3
Compare
|
/gcbrun |
Extend the Spanner Client to be more robust and more featureful.