Skip to content

Commit db4b93e

Browse files
feat(sqlalchemy-spanner): export MAX_SIZE constant and SpannerDialect.max_size attribute
1 parent a53487a commit db4b93e

3 files changed

Lines changed: 24 additions & 4 deletions

File tree

packages/sqlalchemy-spanner/google/cloud/sqlalchemy_spanner/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from .sqlalchemy_spanner import SpannerDialect
15+
from .sqlalchemy_spanner import MAX_SIZE, SpannerDialect
1616
from .version import __version__
1717

18-
__all__ = (SpannerDialect, __version__)
18+
__all__ = (
19+
"MAX_SIZE",
20+
"SpannerDialect",
21+
"__version__",
22+
)

packages/sqlalchemy-spanner/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ def process(value):
150150
selectable.CompoundSelect.INTERSECT_ALL: "INTERSECT ALL",
151151
}
152152

153-
_max_size = 2621440
153+
MAX_SIZE = 2621440
154+
_max_size = MAX_SIZE
154155

155156

156157
def int_from_size(size_str):
@@ -162,7 +163,7 @@ def int_from_size(size_str):
162163
Returns:
163164
int: The column length value.
164165
"""
165-
return _max_size if size_str == "MAX" else int(size_str)
166+
return MAX_SIZE if size_str == "MAX" else int(size_str)
166167

167168

168169
def engine_to_connection(function):
@@ -833,6 +834,7 @@ class SpannerDialect(DefaultDialect):
833834
paramstyle = "format"
834835
encoding = "utf-8"
835836
max_identifier_length = 256
837+
max_size = MAX_SIZE
836838
_legacy_binary_type_literal_encoding = "utf-8"
837839
_default_isolation_level = "SERIALIZABLE"
838840

packages/sqlalchemy-spanner/tests/unit/test_dialect.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,17 @@ def test_get_multi_indexes_handles_null_column_orderings_array(self):
8484
assert ("public", "my_table") in res
8585
index_info = res[("public", "my_table")][0]
8686
eq_(index_info["column_sorting"], {})
87+
88+
def test_max_size_exported(self):
89+
"""Test MAX_SIZE export and int_from_size helper behavior."""
90+
from google.cloud.sqlalchemy_spanner import MAX_SIZE
91+
from google.cloud.sqlalchemy_spanner.sqlalchemy_spanner import (
92+
_max_size,
93+
int_from_size,
94+
)
95+
96+
eq_(MAX_SIZE, 2621440)
97+
eq_(_max_size, MAX_SIZE)
98+
eq_(SpannerDialect.max_size, MAX_SIZE)
99+
eq_(int_from_size("MAX"), 2621440)
100+
eq_(int_from_size("100"), 100)

0 commit comments

Comments
 (0)