Changeset: 7a4f3daf6d73 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7a4f3daf6d73
Modified Files:
sql/backends/monet5/sql_cat.c
sql/test/merge-partitions/Tests/mergepart23.stable.err
sql/test/merge-partitions/Tests/mergepart30.stable.err
Branch: Nov2019
Log Message:
Added error checks in the backend
diffs (88 lines):
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -157,6 +157,8 @@ validate_alter_table_add_table(mvc *sql,
if (isView(rpt))
throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: can't add
a view into a %s", errtable);
+ if (isDeclaredTable(rpt))
+ throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: can't add
a declared table into a %s", errtable);
if (ms->base.id != ps->base.id)
throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: all
children tables of '%s.%s' must be part of schema '%s'", msname, mtname,
msname);
if (n && !update)
@@ -179,9 +181,13 @@ alter_table_add_table(mvc *sql, char *ms
sql_table *mt = NULL, *pt = NULL;
str msg = validate_alter_table_add_table(sql,
"sql.alter_table_add_table", msname, mtname, psname, ptname, &mt, &pt, 0);
- if (msg == MAL_SUCCEED)
+ if (msg == MAL_SUCCEED) {
+ if (isRangePartitionTable(mt))
+ return createException(SQL,
"sql.alter_table_add_table",SQLSTATE(42000) "ALTER TABLE: a range partition is
required while adding under a range partition table");
+ if (isListPartitionTable(mt))
+ return createException(SQL,
"sql.alter_table_add_table",SQLSTATE(42000) "ALTER TABLE: a value partition is
required while adding under a list partition table");
sql_trans_add_table(sql->session->tr, mt, pt);
-
+ }
return msg;
}
@@ -203,11 +209,11 @@ alter_table_add_range_partition(mvc *sql
} else if (!isRangePartitionTable(mt)) {
msg =
createException(SQL,"sql.alter_table_add_range_partition",SQLSTATE(42000)
"ALTER
TABLE: cannot add range partition into a %s table",
-
(mt->type == tt_merge_table)?"merge":"list partition");
+
(isListPartitionTable(mt))?"list partition":"merge");
goto finish;
} else if (!update && pt->p) {
msg =
createException(SQL,"sql.alter_table_add_range_partition",SQLSTATE(42000)
- "ALTER TABLE: table
%s.%s is already part of another range partition table",
+ "ALTER TABLE: table
'%s.%s' is already part of another table",
psname, ptname);
goto finish;
}
@@ -299,11 +305,11 @@ alter_table_add_value_partition(mvc *sql
} else if (!isListPartitionTable(mt)) {
msg =
createException(SQL,"sql.alter_table_add_value_partition",SQLSTATE(42000)
"ALTER
TABLE: cannot add value partition into a %s table",
-
(mt->type == tt_merge_table)?"merge":"range partition");
+
(isRangePartitionTable(mt))?"range partition":"merge");
goto finish;
} else if (!update && pt->p) {
msg =
createException(SQL,"sql.alter_table_add_value_partition",SQLSTATE(42000)
- "ALTER TABLE: table
%s.%s is already part of another list partition table",
+ "ALTER TABLE: table
'%s.%s' is already part of another table",
psname, ptname);
goto finish;
}
diff --git a/sql/test/merge-partitions/Tests/mergepart23.stable.err
b/sql/test/merge-partitions/Tests/mergepart23.stable.err
--- a/sql/test/merge-partitions/Tests/mergepart23.stable.err
+++ b/sql/test/merge-partitions/Tests/mergepart23.stable.err
@@ -21,15 +21,9 @@ stderr of test 'mergepart23` in director
# cmdline opt mapi_usock = /var/tmp/mtest-1771/.s.monetdb.33958
# cmdline opt monet_prompt =
# cmdline opt gdk_dbpath =
/home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/MonetDB/mTests_sql_test_merge-partitions
-#main thread:!ERROR:LoaderException:loadLibrary:Loading error failed to open
library lidar (from within file
'/home/ferreira/repositories/MonetDB-Apr2019/BUILD/lib/monetdb5/lib_lidar.so'):
libpq.so.5: cannot open shared object file: No such file or directory
-#main thread:!ERROR:SyntaxException:parseError:
-#main
thread:!ERROR:SyntaxException:parseError:^LoaderException:loadLibrary:Loading
error failed to open library lidar (from within file
'/home/ferreira/repositories/MonetDB-Apr2019/BUILD/lib/monetdb5/lib_lidar.so'):
libpq.so.5: cannot open shared object file: No such file or directory
-#main thread:!ERROR:LoaderException:loadLibrary:Loading error failed to open
library shp (from within file
'/home/ferreira/repositories/MonetDB-Apr2019/BUILD/lib/monetdb5/lib_shp.so'):
libpq.so.5: cannot open shared object file: No such file or directory
-#main thread:!ERROR:SyntaxException:parseError:
-#main
thread:!ERROR:SyntaxException:parseError:^LoaderException:loadLibrary:Loading
error failed to open library shp (from within file
'/home/ferreira/repositories/MonetDB-Apr2019/BUILD/lib/monetdb5/lib_shp.so'):
libpq.so.5: cannot open shared object file: No such file or directory
MAPI = (monetdb) /var/tmp/mtest-13251/.s.monetdb.37915
QUERY = SELECT "minimum", "maximum" FROM range_partitions;ALTER TABLE
anothertest ADD TABLE subtable1 AS PARTITION FROM 11 TO 20;SELECT "minimum",
"maximum" FROM range_partitions;
-ERROR = !ALTER TABLE: table sys.subtable1 is already part of another range
partition table
+ERROR = !ALTER TABLE: table 'sys.subtable1' is already part of another table
CODE = 42000
# builtin opt gdk_dbpath =
/home/ferreira/repositories/MonetDB-merge-partitions/BUILD/var/monetdb5/dbfarm/demo
# builtin opt gdk_debug = 0
diff --git a/sql/test/merge-partitions/Tests/mergepart30.stable.err
b/sql/test/merge-partitions/Tests/mergepart30.stable.err
--- a/sql/test/merge-partitions/Tests/mergepart30.stable.err
+++ b/sql/test/merge-partitions/Tests/mergepart30.stable.err
@@ -11,7 +11,7 @@ ERROR = !ALTER TABLE: a range partition
CODE = 42000
MAPI = (monetdb) /var/tmp/mtest-32190/.s.monetdb.38020
QUERY = ALTER TABLE table2 ADD TABLE another; --error, a paritioning clause is
required
-ERROR = !ALTER TABLE: a value partition is required while adding for a under a
LIST PARTITION TABLE
+ERROR = !ALTER TABLE: a value partition is required while adding under a LIST
PARTITION TABLE
CODE = 42000
# 09:24:49 >
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list