fix sequence nextval in default column #295
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi, I found a defect for a specific column default value when using a sequence
here the test
def test_table_with_sequence():
# test for
ddl = """CREATE TABLE table (
surrogatekey_SK NUMBER(38,0) NOT NULL DEFAULT DBTEST.SCTEST.SQTEST.NEXTVAL COMMENT 'Record Identification Number',
myColumnComment VARCHAR(255) COMMENT 'Record Identification Number from Sequence')"""
result = DDLParser(ddl).run(group_by_type=True)
expected = {
"ddl_properties": [],
"domains": [],
"schemas": [],
"sequences": [],
"tables": [
{
"alter": {},
"checks": [],
"columns": [
{
"check": None,
"comment": "'Record Identification Number'",
"default": "DBTEST.SCTEST.SQTEST.NEXTVAL",
"name": "surrogatekey_SK",
"nullable": False,
"references": None,
"size": (38, 0),
"type": "NUMBER",
"unique": False,
},
{
"check": None,
"comment": "'Record Identification Number from Sequence'",
"default": None,
"name": "myColumnComment",
"nullable": True,
"references": None,
"size": 255,
"type": "VARCHAR",
"unique": False,
},
],
"index": [],
"partitioned_by": [],
"primary_key": [],
"schema": None,
"table_name": "table",
"tablespace": None,
}
],
"types": [],
}
assert result == expected