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

Reply via email to