From 2cf972b5d1ed4d9d5d0d36299db46484ab8fe651 Mon Sep 17 00:00:00 2001 From: Vengata Krishnan <122897205+vkrishnanfb@users.noreply.github.com> Date: Tue, 21 Mar 2023 14:06:38 -0400 Subject: [PATCH] fb-2036 improve coverage for create view statement (#2333) --- sql3/errors.go | 2 +- sql3/planner/opcreateview.go | 2 +- sql3/sql_complex_test.go | 2 +- sql3/test/defs/defs_views.go | 8 ++++++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/sql3/errors.go b/sql3/errors.go index 44cd761c8..6ed3ebcaa 100644 --- a/sql3/errors.go +++ b/sql3/errors.go @@ -594,7 +594,7 @@ func NewErrTableOrViewNotFound(line, col int, tableName string) error { func NewErrTableExists(line, col int, tableName string) error { return errors.New( ErrTableExists, - fmt.Sprintf("[%d:%d] table '%s' already exists", line, col, tableName), + fmt.Sprintf("[%d:%d] table or view '%s' already exists", line, col, tableName), ) } diff --git a/sql3/planner/opcreateview.go b/sql3/planner/opcreateview.go index d7d4c1181..466347bcb 100644 --- a/sql3/planner/opcreateview.go +++ b/sql3/planner/opcreateview.go @@ -96,7 +96,7 @@ func (i *createViewIter) Next(ctx context.Context) (types.Row, error) { if i.ifNotExists { return nil, types.ErrNoMoreRows } - return nil, sql3.NewErrViewExists(0, 0, i.view.name) + return nil, sql3.NewErrTableExists(0, 0, i.view.name) } // now check in the views table to see if it is exists diff --git a/sql3/sql_complex_test.go b/sql3/sql_complex_test.go index 0d99df2eb..ac007da79 100644 --- a/sql3/sql_complex_test.go +++ b/sql3/sql_complex_test.go @@ -691,7 +691,7 @@ func TestPlanner_CreateTable(t *testing.T) { if err == nil { t.Fatal("expected error") } else { - if err.Error() != "[0:0] table 'allcoltypes' already exists" { + if err.Error() != "[0:0] table or view 'allcoltypes' already exists" { t.Fatal(err) } } diff --git a/sql3/test/defs/defs_views.go b/sql3/test/defs/defs_views.go index a6d9ee257..6e38e9511 100644 --- a/sql3/test/defs/defs_views.go +++ b/sql3/test/defs/defs_views.go @@ -21,6 +21,14 @@ var viewTests = TableTest{ ), ), SQLTests: []SQLTest{ + // test for error where an table exist with the requested new view name. + { + name: "create-view-should-fail", + SQLs: sqls( + "create view viewtable as select _id, a_string, a_int from viewtable;", + ), + ExpErr: "table or view 'viewtable' already exists", + }, { name: "create-view", SQLs: sqls(