Changeset: 1d95d284c771 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1d95d284c771
Modified Files:
clients/mapiclient/dump.c
clients/odbc/driver/SQLForeignKeys.c
clients/odbc/driver/SQLPrimaryKeys.c
clients/odbc/driver/SQLSpecialColumns.c
clients/odbc/driver/SQLStatistics.c
clients/perl/DBD/monetdb.pm
clients/ruby/adapter/active_record/connection_adapters/monetdb_adapter.rb
clients/ruby/adapter/lib/active_record/connection_adapters/monetdb_adapter.rb
java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
monetdb5/modules/mal/mkey.mx
monetdb5/optimizer/opt_support.mx
sql/backends/monet5/sql.mx
sql/backends/monet5/sql_gencode.mx
sql/benchmarks/tpch/load.sh
sql/common/sql_types.c
sql/include/sql_catalog.h
sql/include/sql_relation.h
sql/rel.txt
sql/server/rel_bin.c
sql/server/rel_dump.c
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/server/rel_select.c
sql/server/rel_select.h
sql/server/rel_semantic.c
sql/server/rel_updates.c
sql/server/rel_updates.h
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.y
sql/server/sql_privileges.c
sql/server/sql_scan.c
sql/server/sql_schema.c
sql/server/sql_statement.c
sql/sql/21_dependency_functions.sql
sql/storage/bat/bat_storage.c
sql/storage/bat/bat_storage.h
sql/storage/bpm/bpm_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/test/ADT2006/Tests/benesamo.stable.out
sql/test/ADT2006/Tests/bram.stable.out
sql/test/BugConstraints/Tests/delete_primarykey_1643845.stable.err
sql/test/BugDay_2005-10-06_2.9.3/Tests/BATpropcheck_error.SF-1012739.sql
sql/test/BugDay_2005-10-06_2.9.3/Tests/BATpropcheck_error.SF-1012739.stable.out
sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.sql
sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.stable.out
sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.sql
sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.stable.out
sql/test/BugDay_2005-12-19_2.9.3/Tests/delete_cascade.SF-1296395.stable.out
sql/test/BugDay_2005-12-19_2.9.3/Tests/select_from_env.SF-1240701.1242164.stable.err
sql/test/BugDay_2005-12-19_2.9.3/Tests/select_from_env.SF-1240701.1242164.stable.out
sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err
sql/test/BugTracker-2008/Tests/varchar_char_semantics.SF-2075085.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
sql/test/BugTracker/Tests/auto_increment.SF-1834820.stable.out
sql/test/BugTracker/Tests/cardinality_violation.SF-1240701.stable.err
sql/test/BugTracker/Tests/crash_on_delete.SF-1639108.stable.out
sql/test/BugTracker/Tests/proc_insert_into.SF-1958572.stable.out
sql/test/Dependencies/Tests/Dependencies.stable.out
sql/test/Dependencies/dependency_DBobjects.sql
sql/test/Dependencies/dependency_owner_schema_3.sql
sql/test/Skyserver/Tests/Skyserver.stable.out
sql/test/Skyserver/bugs/Tests/load_dbobjects.stable.out
sql/test/Skyserver/bugs/Tests/load_objmask.stable.out
sql/test/Skyserver/run.all
sql/test/Skyserver/runv6.all
sql/test/Tests/zones.stable.out
sql/test/Via-m/Tests/media_s19.stable.err
sql/test/bugs/Tests/groupby_having-bug-sf-947600.stable.err
sql/test/bugs/Tests/groupby_having-bug-sf-947600.stable.out
sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.stable.out
sql/test/bugs/Tests/insert_delete-bug-sf-904025.stable.out
sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.stable.out
sql/test/bugs/Tests/simple_view.stable.out
sql/test/bugs/Tests/subselect_ambigious_columns-bug-sf-949071.stable.out
sql/test/bugs/Tests/union_all-bug-sf-941788.stable.out
sql/test/bugs/case_cast-bug-sf-1019506.sql
sql/test/bugs/groupby_having-bug-sf-947600.sql
sql/test/bugs/groupby_having_charlength-bug-sf-943566.sql
sql/test/bugs/innerjoin_multiple-bug-sf-943661.sql
sql/test/bugs/select_orderby_alias-bug-sf-1024615.sql
sql/test/bugs/subselect_ambigious_columns-bug-sf-949071.sql
sql/test/bugs/union_all-bug-sf-941788.sql
sql/test/concurrent/Tests/crash_on_concurrent_use.SF-1411926.stable.out
sql/test/leaks/Tests/check0.stable.out
sql/test/leaks/Tests/check1.stable.out
sql/test/leaks/Tests/check2.stable.out
sql/test/leaks/Tests/check3.stable.out
sql/test/leaks/Tests/check4.stable.out
sql/test/leaks/Tests/check5.stable.out
sql/test/leaks/Tests/drop3.stable.out
sql/test/leaks/Tests/select1.stable.out
sql/test/leaks/Tests/select2.stable.out
sql/test/leaks/Tests/temp1.stable.out
sql/test/leaks/Tests/temp2.stable.out
sql/test/leaks/Tests/temp3.stable.out
sql/test/mapi/Tests/php_monetdb.stable.out
sql/test/ssqq/Tests/insert_query.stable.out
sql/test/ssqq/Tests/insert_queue.stable.out
sql/test/ssqq/insert_queue.sql
Branch: default
Log Message:
update and insert are now handled (mostly) on the relational algebra
level. TODO cascades and triggers are still part of the bin algebra only.
The null, foreign en primary key check stay on that level.
diffs (truncated from 6541 to 300 lines):
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -165,18 +165,18 @@
snprintf(query, maxquerylen,
"SELECT \"ps\".\"name\"," /* 0 */
"\"pkt\".\"name\"," /* 1 */
- "\"pkkc\".\"column\"," /* 2 */
- "\"fkkc\".\"column\"," /* 3 */
+ "\"pkkc\".\"name\"," /* 2 */
+ "\"fkkc\".\"name\"," /* 3 */
"\"fkkc\".\"nr\"," /* 4 */
"\"fkk\".\"name\"," /* 5 */
"\"fkk\".\"action\"," /* 6 */
"\"fs\".\"name\"," /* 7 */
"\"fkt\".\"name\" " /* 8 */
"FROM \"sys\".\"_tables\" \"fkt\","
- "\"sys\".\"keycolumns\" \"fkkc\","
+ "\"sys\".\"objects\" \"fkkc\","
"\"sys\".\"keys\" \"fkk\","
"\"sys\".\"_tables\" \"pkt\","
- "\"sys\".\"keycolumns\" \"pkkc\","
+ "\"sys\".\"objects\" \"pkkc\","
"\"sys\".\"keys\" \"pkk\","
"\"sys\".\"schemas\" \"ps\","
"\"sys\".\"schemas\" \"fs\" "
@@ -197,18 +197,18 @@
snprintf(query, maxquerylen,
"SELECT \"ps\".\"name\"," /* 0 */
"\"pkt\".\"name\"," /* 1 */
- "\"pkkc\".\"column\"," /* 2 */
- "\"fkkc\".\"column\"," /* 3 */
+ "\"pkkc\".\"name\"," /* 2 */
+ "\"fkkc\".\"name\"," /* 3 */
"\"fkkc\".\"nr\"," /* 4 */
"\"fkk\".\"name\"," /* 5 */
"\"fkk\".\"action\"," /* 6 */
"0," /* 7 */
"\"fkt\".\"name\" " /* 8 */
"FROM \"sys\".\"_tables\" \"fkt\","
- "\"sys\".\"keycolumns\" \"fkkc\","
+ "\"sys\".\"objects\" \"fkkc\","
"\"sys\".\"keys\" \"fkk\","
"\"sys\".\"_tables\" \"pkt\","
- "\"sys\".\"keycolumns\" \"pkkc\","
+ "\"sys\".\"objects\" \"pkkc\","
"\"sys\".\"keys\" \"pkk\","
"\"sys\".\"schemas\" \"ps\""
"WHERE \"fkt\".\"id\" = \"fkk\".\"table_id\" AND "
@@ -223,18 +223,18 @@
} else {
query = "SELECT \"ps\".\"name\"," /* 0 */
"\"pkt\".\"name\"," /* 1 */
- "\"pkkc\".\"column\"," /* 2 */
- "\"fkkc\".\"column\"," /* 3 */
+ "\"pkkc\".\"name\"," /* 2 */
+ "\"fkkc\".\"name\"," /* 3 */
"\"fkkc\".\"nr\"," /* 4 */
"\"fkk\".\"name\"," /* 5 */
"\"fkk\".\"action\"," /* 6 */
"\"fs\".\"name\"," /* 7 */
"\"fkt\".\"name\" " /* 8 */
"FROM \"sys\".\"_tables\" \"fkt\","
- "\"sys\".\"keycolumns\" \"fkkc\","
+ "\"sys\".\"objects\" \"fkkc\","
"\"sys\".\"keys\" \"fkk\","
"\"sys\".\"_tables\" \"pkt\","
- "\"sys\".\"keycolumns\" \"pkkc\","
+ "\"sys\".\"objects\" \"pkkc\","
"\"sys\".\"keys\" \"pkk\","
"\"sys\".\"schemas\" \"ps\","
"\"sys\".\"schemas\" \"fs\" "
@@ -579,11 +579,11 @@
constraint */
if (tid)
snprintf(query, maxquerylen,
- "SELECT \"kc\".\"column\"," /* 0 */
+ "SELECT \"kc\".\"name\"," /* 0 */
"\"kc\".\"nr\", " /* 1 */
"\"k\".\"name\", " /* 2 */
"\"k\".\"id\" " /* 3 */
- "FROM \"sys\".\"keycolumns\" \"kc\", "
+ "FROM \"sys\".\"objects\" \"kc\", "
"\"sys\".\"keys\" \"k\" "
"WHERE \"kc\".\"id\" = \"k\".\"id\" AND "
"\"k\".\"table_id\" = %s AND "
@@ -591,11 +591,11 @@
"ORDER BY \"id\", \"nr\"", tid);
else
snprintf(query, maxquerylen,
- "SELECT \"kc\".\"column\"," /* 0 */
+ "SELECT \"kc\".\"name\"," /* 0 */
"\"kc\".\"nr\", " /* 1 */
"\"k\".\"name\", " /* 2 */
"\"k\".\"id\" " /* 3 */
- "FROM \"sys\".\"keycolumns\" \"kc\", "
+ "FROM \"sys\".\"objects\" \"kc\", "
"\"sys\".\"keys\" \"k\", "
"\"sys\".\"schemas\" \"s\", "
"\"sys\".\"_tables\" \"t\" "
@@ -638,11 +638,11 @@
if (tid)
snprintf(query, maxquerylen,
- "SELECT \"kc\".\"column\"," /* 0 */
+ "SELECT \"kc\".\"name\"," /* 0 */
"\"kc\".\"nr\", " /* 1 */
"\"k\".\"name\", " /* 2 */
"\"k\".\"id\" " /* 3 */
- "FROM \"sys\".\"keycolumns\" \"kc\", "
+ "FROM \"sys\".\"objects\" \"kc\", "
"\"sys\".\"keys\" \"k\" "
"WHERE \"kc\".\"id\" = \"k\".\"id\" AND "
"\"k\".\"table_id\" = %s AND "
@@ -650,11 +650,11 @@
"ORDER BY \"id\", \"nr\"", tid);
else
snprintf(query, maxquerylen,
- "SELECT \"kc\".\"column\"," /* 0 */
+ "SELECT \"kc\".\"name\"," /* 0 */
"\"kc\".\"nr\", " /* 1 */
"\"k\".\"name\", " /* 2 */
"\"k\".\"id\" " /* 3 */
- "FROM \"sys\".\"keycolumns\" \"kc\", "
+ "FROM \"sys\".\"objects\" \"kc\", "
"\"sys\".\"keys\" \"k\", "
"\"sys\".\"schemas\" \"s\", "
"\"sys\".\"_tables\" \"t\" "
@@ -802,14 +802,14 @@
"\"c\".\"name\" " /* 3 */
"FROM \"sys\".\"idxs\" AS \"i\" LEFT JOIN \"sys\".\"keys\" AS
\"k\" "
"ON \"i\".\"name\" = \"k\".\"name\", "
- "\"sys\".\"keycolumns\" AS \"kc\", "
+ "\"sys\".\"objects\" AS \"kc\", "
"\"sys\".\"_columns\" AS \"c\", "
"\"sys\".\"schemas\" \"s\", "
"\"sys\".\"_tables\" AS \"t\" "
"WHERE \"i\".\"table_id\" = \"t\".\"id\" AND "
"\"i\".\"id\" = \"kc\".\"id\" AND "
"\"t\".\"id\" = \"c\".\"table_id\" AND "
- "\"kc\".\"column\" = \"c\".\"name\" AND "
+ "\"kc\".\"name\" = \"c\".\"name\" AND "
"(\"k\".\"type\" IS NULL OR \"k\".\"type\" = 1) AND "
"\"t\".\"schema_id\" = \"s\".\"id\" AND "
"\"s\".\"name\" = '%s' AND "
diff --git a/clients/odbc/driver/SQLForeignKeys.c
b/clients/odbc/driver/SQLForeignKeys.c
--- a/clients/odbc/driver/SQLForeignKeys.c
+++ b/clients/odbc/driver/SQLForeignKeys.c
@@ -116,11 +116,11 @@
"cast(null as varchar(1)) as pktable_cat, "
"pks.\"name\" as pktable_schem, "
"pkt.\"name\" as pktable_name, "
- "pkkc.\"column\" as pkcolumn_name, "
+ "pkkc.\"name\" as pkcolumn_name, "
"cast(null as varchar(1)) as fktable_cat, "
"fks.\"name\" as fktable_schem, "
"fkt.\"name\" as fktable_name, "
- "fkkc.\"column\" as fkcolumn_name, "
+ "fkkc.\"name\" as fkcolumn_name, "
"cast(fkkc.\"nr\" + 1 as smallint) as key_seq, "
"cast(%d as smallint) as update_rule, "
"cast(%d as smallint) as delete_rule, "
@@ -128,9 +128,9 @@
"pkk.\"name\" as pk_name, "
"cast(%d as smallint) as deferrability "
"from sys.\"schemas\" fks, sys.\"tables\" fkt, "
- "sys.\"keycolumns\" fkkc, sys.\"keys\" as fkk, "
+ "sys.\"objects\" fkkc, sys.\"keys\" as fkk, "
"sys.\"schemas\" pks, sys.\"tables\" pkt, "
- "sys.\"keycolumns\" pkkc, sys.\"keys\" as pkk "
+ "sys.\"objects\" pkkc, sys.\"keys\" as pkk "
"where fkt.\"id\" = fkk.\"table_id\" and "
"pkt.\"id\" = pkk.\"table_id\" and "
"fkk.\"id\" = fkkc.\"id\" and "
diff --git a/clients/odbc/driver/SQLPrimaryKeys.c
b/clients/odbc/driver/SQLPrimaryKeys.c
--- a/clients/odbc/driver/SQLPrimaryKeys.c
+++ b/clients/odbc/driver/SQLPrimaryKeys.c
@@ -91,11 +91,11 @@
"cast(null as varchar(1)) as table_cat, "
"s.\"name\" as table_schem, "
"t.\"name\" as table_name, "
- "kc.\"column\" as column_name, "
+ "kc.\"name\" as column_name, "
"cast(kc.\"nr\" + 1 as smallint) as key_seq, "
"k.\"name\" as pk_name "
"from sys.\"schemas\" s, sys.\"tables\" t, "
- "sys.\"keys\" k, sys.\"keycolumns\" kc "
+ "sys.\"keys\" k, sys.\"objects\" kc "
"where k.\"id\" = kc.\"id\" and "
"k.\"table_id\" = t.\"id\" and "
"t.\"schema_id\" = s.\"id\" and "
diff --git a/clients/odbc/driver/SQLSpecialColumns.c
b/clients/odbc/driver/SQLSpecialColumns.c
--- a/clients/odbc/driver/SQLSpecialColumns.c
+++ b/clients/odbc/driver/SQLSpecialColumns.c
@@ -147,11 +147,11 @@
"cast(1 as smallint) as pseudo_column "
"from sys.\"schemas\" s, sys.\"tables\" t, "
"sys.\"columns\" c, sys.\"keys\" k, "
- "sys.\"keycolumns\" kc "
+ "sys.\"objects\" kc "
"where s.\"id\" = t.\"schema_id\" and "
"t.\"id\" = c.\"table_id\" and "
"t.\"id\" = k.\"table_id\" and "
- "c.\"name\" = kc.\"column\" and "
+ "c.\"name\" = kc.\"name\" and "
"kc.\"id\" = k.\"id\" and "
"k.\"type\" in (0, 1)");
query_end += strlen(query_end);
diff --git a/clients/odbc/driver/SQLStatistics.c
b/clients/odbc/driver/SQLStatistics.c
--- a/clients/odbc/driver/SQLStatistics.c
+++ b/clients/odbc/driver/SQLStatistics.c
@@ -143,12 +143,12 @@
"cast(null as integer) as pages, "
"cast(null as varchar(1)) as filter_condition "
"from sys.\"idxs\" i, sys.\"schemas\" s, sys.\"tables\" t, "
- "sys.\"columns\" c, sys.\"keycolumns\" kc, sys.\"keys\" k "
+ "sys.\"columns\" c, sys.\"objects\" kc, sys.\"keys\" k "
"where i.\"table_id\" = t.\"id\" and "
"t.\"schema_id\" = s.\"id\" and "
"i.\"id\" = kc.\"id\" and "
"t.\"id\" = c.\"table_id\" and "
- "kc.\"column\" = c.\"name\" and "
+ "kc.\"name\" = c.\"name\" and "
"(k.\"type\" is null or k.\"type\" = 1)",
SQL_INDEX_HASHED, SQL_INDEX_OTHER);
query_end += strlen(query_end);
diff --git a/clients/perl/DBD/monetdb.pm b/clients/perl/DBD/monetdb.pm
--- a/clients/perl/DBD/monetdb.pm
+++ b/clients/perl/DBD/monetdb.pm
@@ -387,13 +387,13 @@
select cast( null as varchar( 128 ) ) as table_cat
, s."name" as table_schem
, t."name" as table_name
- , c."column" as column_name
+ , c."name" as column_name
, cast( c."nr" + 1 as smallint ) as key_seq
, k."name" as pk_name
from sys."schemas" s
, sys."tables" t
, sys."keys" k
- , sys."keycolumns" c
+ , sys."objects" c
where t."schema_id" = s."id"
and k."table_id" = t."id"
and c."id" = k."id"
@@ -415,11 +415,11 @@
select cast( null as varchar( 128 ) ) as uk_table_cat
, uks."name" as uk_table_schem
, ukt."name" as uk_table_name
- , ukc."column" as uk_column_name
+ , ukc."name" as uk_column_name
, cast( null as varchar( 128 ) ) as fk_table_cat
, fks."name" as fk_table_schem
, fkt."name" as fk_table_name
- , fkc."column" as fk_column_name
+ , fkc."name" as fk_column_name
, cast( fkc."nr" + 1 as smallint ) as ordinal_position
, cast( 3 as smallint ) as update_rule --
SQL_NO_ACTION
, cast( 3 as smallint ) as delete_rule --
SQL_NO_ACTION
@@ -434,11 +434,11 @@
from sys."schemas" uks
, sys."tables" ukt
, sys."keys" ukk
- , sys."keycolumns" ukc
+ , sys."objects" ukc
, sys."schemas" fks
, sys."tables" fkt
, sys."keys" fkk
- , sys."keycolumns" fkc
+ , sys."objects" fkc
where ukt."schema_id" = uks."id"
and ukk."table_id" = ukt."id"
and ukc."id" = ukk."id"
diff --git
a/clients/ruby/adapter/active_record/connection_adapters/monetdb_adapter.rb
b/clients/ruby/adapter/active_record/connection_adapters/monetdb_adapter.rb
--- a/clients/ruby/adapter/active_record/connection_adapters/monetdb_adapter.rb
+++ b/clients/ruby/adapter/active_record/connection_adapters/monetdb_adapter.rb
@@ -341,9 +341,9 @@
# Returns an array of indexes for the given table.
def indexes(table_name, name = nil)
- sql_query = " SELECT distinct i.name as index_name, k.\"column\", k.nr
+ sql_query = " SELECT distinct i.name as index_name, k.\"name\", k.nr
FROM
- idxs i, _tables t, keycolumns k
+ idxs i, _tables t, objects k
WHERE
i.type = 0 AND i.name not like '%pkey'
AND i.id = k.id AND t.id = i.table_id
@@ -360,7 +360,7 @@
cur_index = row['index_name']
end
- indexes.last.columns << row['column']
+ indexes.last.columns << row['name']
end
indexes
diff --git
a/clients/ruby/adapter/lib/active_record/connection_adapters/monetdb_adapter.rb
b/clients/ruby/adapter/lib/active_record/connection_adapters/monetdb_adapter.rb
---
a/clients/ruby/adapter/lib/active_record/connection_adapters/monetdb_adapter.rb
+++
b/clients/ruby/adapter/lib/active_record/connection_adapters/monetdb_adapter.rb
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list