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

feat(db_api): support executing several DDLs separated by semicolon #277

Merged
merged 3 commits into from Mar 18, 2021

Conversation

IlyaFaer
Copy link
Member

@IlyaFaer IlyaFaer commented Mar 16, 2021

With this change users will be able to put several DDLs into one execute() call, like:

cursor.execute("CREATE TABLE ...;CREATE INDEX...")

@IlyaFaer IlyaFaer added api: spanner type: feature request labels Mar 16, 2021
@google-cla google-cla bot added the cla: yes label Mar 16, 2021
@IlyaFaer IlyaFaer requested a review from larkee Mar 16, 2021
@IlyaFaer IlyaFaer marked this pull request as ready for review Mar 16, 2021
@IlyaFaer IlyaFaer requested a review from as a code owner Mar 16, 2021
@IlyaFaer
Copy link
Member Author

@IlyaFaer IlyaFaer commented Mar 16, 2021

@larkee, these are changes needed for SQLAlchemy dialect, first of all to make it possible to drop indexes and constraints before dropping the table. And, after all, I think it's not a bad feature.

@larkee
Copy link
Contributor

@larkee larkee commented Mar 16, 2021

Please add or update a unit test with an example of a DDL statement with semicolons.

@larkee
Copy link
Contributor

@larkee larkee commented Mar 17, 2021

Would it be reasonable to also allow for each statement to start on a new line? See here for an example of what I mean.

@IlyaFaer
Copy link
Member Author

@IlyaFaer IlyaFaer commented Mar 17, 2021

@larkee, it's already working with new lines. I've added a line with \n symbol into the test to be sure.

str.strip() erases \n symbols as well (though it's something not mentioned in Python docs directly). Here is a short example:

image

larkee
larkee approved these changes Mar 18, 2021
@larkee larkee merged commit 801ddc8 into googleapis:master Mar 18, 2021
8 checks passed
@IlyaFaer IlyaFaer deleted the several_ddls branch Mar 18, 2021
gcf-merge-on-green bot pushed a commit that referenced this issue Mar 25, 2021
🤖 I have created a release \*beep\* \*boop\*
---
## [3.3.0](https://www.github.com/googleapis/python-spanner/compare/v3.2.0...v3.3.0) (2021-03-25)


### Features

* add encryption_info to Database ([#284](https://www.github.com/googleapis/python-spanner/issues/284)) ([2fd0352](https://www.github.com/googleapis/python-spanner/commit/2fd0352f695d7ab85e57d8c4388f42f91cf39435))
* add support for CMEK ([#105](https://www.github.com/googleapis/python-spanner/issues/105)) ([e990ff7](https://www.github.com/googleapis/python-spanner/commit/e990ff70342e7c2e27059e82c8d74cce39eb85d0))
* add support for custom timeout and retry parameters in execute_update method in transactions ([#251](https://www.github.com/googleapis/python-spanner/issues/251)) ([8abaebd](https://www.github.com/googleapis/python-spanner/commit/8abaebd9edac198596e7bd51d068d50147d0391d))
* added retry and timeout params to partition read in database and snapshot class ([#278](https://www.github.com/googleapis/python-spanner/issues/278)) ([1a7c9d2](https://www.github.com/googleapis/python-spanner/commit/1a7c9d296c23dfa7be7b07ea511a4a8fc2c0693f))
* **db_api:** support executing several DDLs separated by semicolon ([#277](https://www.github.com/googleapis/python-spanner/issues/277)) ([801ddc8](https://www.github.com/googleapis/python-spanner/commit/801ddc87434ff9e3c86b1281ebfeac26195c06e8))


### Bug Fixes

* avoid consuming pending null values when merging ([#286](https://www.github.com/googleapis/python-spanner/issues/286)) ([c6cba9f](https://www.github.com/googleapis/python-spanner/commit/c6cba9fbe4c717f1f8e2a97e3f76bfe6b956e55b))
* **db_api:** allow file path for credentials ([#221](https://www.github.com/googleapis/python-spanner/issues/221)) ([1de0284](https://www.github.com/googleapis/python-spanner/commit/1de028430b779a50d38242fe70567e92b560df5a))
* **db_api:** ensure DDL statements are being executed ([#290](https://www.github.com/googleapis/python-spanner/issues/290)) ([baa02ee](https://www.github.com/googleapis/python-spanner/commit/baa02ee1a352f7c509a3e169927cf220913e521f))
* **db_api:** revert Mutations API usage ([#285](https://www.github.com/googleapis/python-spanner/issues/285)) ([e5d4901](https://www.github.com/googleapis/python-spanner/commit/e5d4901e9b7111b39dfec4c56032875dc7c6e74c))


### Documentation

* fix docstring types and typos ([#259](https://www.github.com/googleapis/python-spanner/issues/259)) ([1b0ce1d](https://www.github.com/googleapis/python-spanner/commit/1b0ce1d2986085ce4033cf773eb6c5d3b904473c))
* fix snapshot usage ([#291](https://www.github.com/googleapis/python-spanner/issues/291)) ([eee2181](https://www.github.com/googleapis/python-spanner/commit/eee218164c3177586b73278aa21495280984af89))
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner cla: yes type: feature request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants