Environment details
- Programming language: Python
- OS: Linux
- Language runtime version: Python3.9
- Package version: sqlalchemy-spanner-1.0.0
Steps to reproduce
- Run the following snippet:
from sqlalchemy import (
Column,
Computed,
MetaData,
String,
Table,
)
metadata = MetaData(bind=engine)
singers = Table(
"Singers",
metadata,
Column("SingerId", String(36), primary_key=True, nullable=False),
Column("FirstName", String(200)),
Column("LastName", String(200), nullable=False),
Column("FullName", String(400), Computed("COALESCE(FirstName || ' ', '') || LastName"), nullable=False),
)
metadata.create_all(engine)
- I get the following error:
raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.InvalidArgument: 400 Error parsing Spanner DDL statement: CREATE TABLE `Singers` (\n\t`SingerId` STRING(36) NOT NULL, \n\t`FirstName` STRING(200), \n\t`LastName` STRING(200) NOT NULL, \n\t`FullName` STRING(400) AS (COALESCE(FirstName || \' \', \'\') || LastName) STORED NOT NULL\n) PRIMARY KEY (SingerId) : Syntax error on line 5, column 80: Expecting \')\' but found \'NOT\'
- It seems that we can't specify the nullable condition for generated columns.
Reactions are currently unavailable
Environment details
Steps to reproduce
from sqlalchemy import ( Column, Computed, MetaData, String, Table, ) metadata = MetaData(bind=engine) singers = Table( "Singers", metadata, Column("SingerId", String(36), primary_key=True, nullable=False), Column("FirstName", String(200)), Column("LastName", String(200), nullable=False), Column("FullName", String(400), Computed("COALESCE(FirstName || ' ', '') || LastName"), nullable=False), ) metadata.create_all(engine)