Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2395a57
Merge pull request #1323 from dolthub/james/mline3
jycor Oct 13, 2022
fccf7c5
Merge pull request #1322 from dolthub/james/mline2
jycor Oct 13, 2022
4d8b144
Merge pull request #1321 from dolthub/james/mline
jycor Oct 13, 2022
c307902
also fixing in in-memory tables
Oct 13, 2022
7b9d630
checking for table name conflicts in gms
Oct 13, 2022
786965c
making the inverse also not work
Oct 13, 2022
5755b58
moving errors
Oct 13, 2022
f198cd0
Merge pull request #1333 from dolthub/james/views
jycor Oct 13, 2022
04bcc39
Merge pull request #1330 from dolthub/james/mpoly3
jycor Oct 14, 2022
74e0014
Merge pull request #1327 from dolthub/james/mpoly2
jycor Oct 14, 2022
158f3fe
Merge branch 'main' into james/mpoly
Oct 14, 2022
57557a1
Merge pull request #1324 from dolthub/james/mpoly
jycor Oct 14, 2022
cafab36
Merge pull request #1334 from dolthub/james/mline3
jycor Oct 14, 2022
3b6ff07
swap test
Oct 14, 2022
3f9182d
srid test
Oct 14, 2022
62153da
asdf
Oct 14, 2022
a44854b
revert changes to rules
Oct 14, 2022
e53efa8
working, but leaving a TODO
Oct 14, 2022
7b08591
asdfasdf
Oct 14, 2022
556297c
adding helper method
Oct 14, 2022
16a3c1f
adding script test
Oct 14, 2022
c2bf092
Merge pull request #1336 from dolthub/james/alter
jycor Oct 14, 2022
d39e031
Merge branch 'james/geomcoll2' into james/geomcoll3
Oct 14, 2022
c185130
Merge branch 'main' into james/geomcoll
Oct 14, 2022
61d688f
Merge branch 'james/geomcoll' into james/geomcoll2
Oct 14, 2022
c8a2721
Merge branch 'james/geomcoll2' into james/geomcoll3
Oct 14, 2022
6c94964
probably right, need tests
Oct 14, 2022
ca47966
workinggit add .git add .git add ., but needtests
Oct 14, 2022
3469cb0
unit tests
Oct 16, 2022
b3a6408
done
Oct 16, 2022
86f7228
this matters for some reason
Oct 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions enginetest/enginetests.go
Original file line number Diff line number Diff line change
Expand Up @@ -5613,6 +5613,9 @@ func TestColumnDefaults(t *testing.T, harness Harness) {
RunQuery(t, e, harness, "CREATE TABLE t34(pk INT PRIMARY KEY, v1 JSON)")
AssertErr(t, e, harness, "ALTER TABLE t34 alter column v1 set default '{}'", sql.ErrInvalidTextBlobColumnDefault)
RunQuery(t, e, harness, "ALTER TABLE t34 alter column v1 set default ('{}')")
RunQuery(t, e, harness, "CREATE TABLE t35(i int default 100, j JSON)")
AssertErr(t, e, harness, "ALTER TABLE t35 alter column j set default '[]'", sql.ErrInvalidTextBlobColumnDefault)
RunQuery(t, e, harness, "ALTER TABLE t35 alter column j set default ('[]')")
})

t.Run("Other types using NOW/CURRENT_TIMESTAMP literal", func(t *testing.T) {
Expand Down
8 changes: 8 additions & 0 deletions enginetest/queries/queries.go
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ var SpatialQueryTests = []QueryTest{
{SRID: 4326, Lines: []sql.LineString{{SRID: 4326, Points: []sql.Point{{SRID: 4326, X: 0, Y: 0}, {SRID: 4326, X: 1.1, Y: 2.2}, {SRID: 4326, X: 3.3, Y: 4.4}, {SRID: 4326, X: 0, Y: 0}}}}},
{SRID: 4326, Lines: []sql.LineString{{SRID: 4326, Points: []sql.Point{{SRID: 4326, X: 1.1, Y: 1.1}, {SRID: 4326, X: 1.1, Y: 2.2}, {SRID: 4326, X: 3.3, Y: 4.4}, {SRID: 4326, X: 1.1, Y: 1.1}}}}},
}}},
{sql.GeomColl{SRID: 4326, Geoms: []sql.GeometryValue{sql.GeomColl{SRID: 4326, Geoms: []sql.GeometryValue{}}}}},
},
},
{
Expand Down Expand Up @@ -312,6 +313,7 @@ var SpatialQueryTests = []QueryTest{
{sql.JSONDocument{Val: map[string]interface{}{"type": "MultiPoint", "coordinates": [][2]float64{{1.23, 2.345}, {3.56789, 4.56}}}}},
{sql.JSONDocument{Val: map[string]interface{}{"type": "MultiLineString", "coordinates": [][][2]float64{{{1.1, 2.2}, {3.3, 4.4}}, {{5.5, 6.6}, {7.7, 8.8}}}}}},
{sql.JSONDocument{Val: map[string]interface{}{"type": "MultiPolygon", "coordinates": [][][][2]float64{{{{0, 0}, {1.1, 2.2}, {3.3, 4.4}, {0, 0}}}, {{{1.1, 1.1}, {1.1, 2.2}, {3.3, 4.4}, {1.1, 1.1}}}}}}},
{sql.JSONDocument{Val: map[string]interface{}{"type": "GeometryCollection", "geometries": []interface{}{map[string]interface{}{"type": "GeometryCollection", "geometries": []interface{}{}}}}}},
},
},
{
Expand Down Expand Up @@ -357,6 +359,12 @@ var SpatialQueryTests = []QueryTest{
{SRID: 4326, Lines: []sql.LineString{{SRID: 4326, Points: []sql.Point{{SRID: 4326, X: 1, Y: 1}, {SRID: 4326, X: 2, Y: 3}, {SRID: 4326, X: 4, Y: 5}, {SRID: 4326, X: 1, Y: 1}}}}}}}},
},
},
{
Query: `SELECT ST_GEOMFROMGEOJSON(ST_ASGEOJSON(g)) from geom_coll_table`,
Expected: []sql.Row{
{sql.GeomColl{SRID: 4326, Geoms: []sql.GeometryValue{sql.GeomColl{SRID: 4326, Geoms: []sql.GeometryValue{}}}}},
},
},
{
Query: `SELECT ST_DIMENSION(p) from point_table`,
Expected: []sql.Row{
Expand Down
42 changes: 42 additions & 0 deletions enginetest/queries/script_queries.go
Original file line number Diff line number Diff line change
Expand Up @@ -1999,6 +1999,24 @@ var ScriptTests = []ScriptTest{
},
},
},
{
Name: "alter json column default; from scorewarrior: https://github.com/dolthub/dolt/issues/4543",
SetUpScript: []string{
"CREATE TABLE test (i int default 999, j json);",
},
Assertions: []ScriptTestAssertion{
{
Query: "alter table test alter column j set default ('[]');",
Expected: []sql.Row{},
},
{
Query: "show create table test",
Expected: []sql.Row{
{"test", "CREATE TABLE `test` (\n `i` int DEFAULT '999',\n `j` json DEFAULT ('[]')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"},
},
},
},
},
{
Name: "ALTER TABLE MULTI ADD/DROP COLUMN",
SetUpScript: []string{
Expand Down Expand Up @@ -2322,6 +2340,30 @@ var ScriptTests = []ScriptTest{
},
},
},
{
Name: "can't create view with same name as existing table",
SetUpScript: []string{
"create table t (i int);",
},
Assertions: []ScriptTestAssertion{
{
Query: "create view t as select 1 from dual",
ExpectedErr: sql.ErrTableAlreadyExists,
},
},
},
{
Name: "can't create table with same name as existing view",
SetUpScript: []string{
"create view t as select 1 from dual",
},
Assertions: []ScriptTestAssertion{
{
Query: "create table t (i int);",
ExpectedErr: sql.ErrTableAlreadyExists,
},
},
},
}

var SpatialScriptTests = []ScriptTest{
Expand Down
3 changes: 2 additions & 1 deletion enginetest/scriptgen/setup/scripts/spatial
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ insert into stringtogeojson_table values
(6, '{"type": "MultiPoint", "coordinates": [[1,2],[3,4]]}'),
(7, '{"type": "MultiPoint", "coordinates": [[1.23,2.345],[3.56789,4.56]]}'),
(8, '{"type": "MultiLineString", "coordinates": [[[1.1,2.2],[3.3,4.4]],[[5.5,6.6],[7.7,8.8]]]}'),
(9, '{"type": "MultiPolygon", "coordinates": [[[[0.0, 0.0],[1.1,2.2],[3.3,4.4],[0.0,0.0]]],[[[1.1,1.1],[1.1,2.2],[3.3,4.4],[1.1,1.1]]]]}')
(9, '{"type": "MultiPolygon", "coordinates": [[[[0.0, 0.0],[1.1,2.2],[3.3,4.4],[0.0,0.0]]],[[[1.1,1.1],[1.1,2.2],[3.3,4.4],[1.1,1.1]]]]}'),
(10, '{"type": "GeometryCollection", "geometries": [{"type": "GeometryCollection", "geometries":[]}]}')
----

exec
Expand Down
2 changes: 1 addition & 1 deletion enginetest/scriptgen/setup/setup_data.sg.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 18 additions & 14 deletions sql/analyzer/resolve_column_defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -498,21 +498,25 @@ func resolveColumnDefaults(ctx *sql.Context, _ *Analyzer, n sql.Node, _ *Scope,
}
return node, identity, err
case *plan.AlterDefaultSet:
return transform.NodeExprs(n, func(e sql.Expression) (sql.Expression, transform.TreeIdentity, error) {
eWrapper, ok := e.(*expression.Wrapper)
if !ok {
return e, transform.SameTree, nil
}

table := getResolvedTable(node)
sch := table.Schema()
index := sch.IndexOfColName(node.ColumnName)

col := sch[index]
colIndex++
table := getResolvedTable(node)
sch := table.Schema()
index := sch.IndexOfColName(node.ColumnName)
col := sch[index]

eWrapper := expression.WrapExpression(node.Default)
newExpr, same, err := resolveColumnDefaultsOnWrapper(ctx, col, eWrapper)
if err != nil {
return node, transform.SameTree, err
}
if same {
return node, transform.SameTree, nil
}

return resolveColumnDefaultsOnWrapper(ctx, col, eWrapper)
})
newNode, err := node.WithDefault(newExpr)
if err != nil {
return node, transform.SameTree, err
}
return newNode, transform.NewTree, nil
case sql.SchemaTarget:
return transform.NodeExprs(n, func(e sql.Expression) (sql.Expression, transform.TreeIdentity, error) {
eWrapper, ok := e.(*expression.Wrapper)
Expand Down
Loading