Changeset: 15746c9822f0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=15746c9822f0
Added Files:
        clients/mapiclient/mhelp.c
Modified Files:
        clients/ChangeLog
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/SQL-dump.stable.out
        clients/Tests/SQL-dump.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/mclient.c
        gdk/ChangeLog.Dec2016
        gdk/gdk_atoms.c
        gdk/gdk_atoms.h
        gdk/gdk_calc.c
        monetdb5/modules/mal/00_batcalc_hge.mal
        monetdb5/modules/mal/00_batcalc_hge.mal.sh
        monetdb5/modules/mal/00_calc_hge.mal
        monetdb5/modules/mal/00_calc_hge.mal.sh
        monetdb5/modules/mal/01_batcalc.mal
        monetdb5/modules/mal/01_batcalc.mal.sh
        monetdb5/modules/mal/01_calc.mal
        monetdb5/modules/mal/01_calc.mal.sh
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade/Tests/check.stable.out
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/emptydb/Tests/load.stable.out
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: oltp
Log Message:

Merge with default


diffs (truncated from 2126 to 300 lines):

diff --git a/clients/ChangeLog b/clients/ChangeLog
--- a/clients/ChangeLog
+++ b/clients/ChangeLog
@@ -1,3 +1,6 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Sun Oct 30 2016 Martin Kersten <m...@cwi.nl>
+- Added an more elaborate \help command for SQL expressions.
+
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -7543,47 +7543,11 @@ Ready.
 [ "batcalc",   "sign", "pattern batcalc.sign(b:bat[:sht]):bat[:bte] ", 
"CMDbatSIGN;",  "Unary sign (-1,0,1) over the tail of the bat"  ]
 [ "batcalc",   "sign", "pattern 
batcalc.sign(b:bat[:sht],s:bat[:oid]):bat[:bte] ",     "CMDbatSIGN;",  "Unary 
sign (-1,0,1) over the tail of the bat with candidates list"     ]
 [ "batcalc",   "sqlblob",      "command 
batcalc.sqlblob(v:bat[:str]):bat[:sqlblob] ",  "batstr_2_sqlblob;",    "cast to 
sqlblob"       ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:bit]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from bit to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:bit],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from bit to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:bte]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from bte to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:bte],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from bte to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:dbl]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from dbl to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:dbl],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from dbl to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:flt]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from flt to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:flt],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from flt to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:hge]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from hge to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:hge],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from hge to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:int]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from int to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:int],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from int to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:lng]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from lng to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:lng],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from lng to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:oid]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from oid to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:oid],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from oid to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:sht]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from sht to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:sht],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from sht to str with candidates 
list, signal error on overflow"   ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:str]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from str to str, signal error on 
overflow"        ]
-[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:str],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from str to str with candidates 
list, signal error on overflow"   ]
+[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:any]):bat[:str] ",  
"CMDconvertsignal_str;",        "cast from any to str, signal error on 
overflow"        ]
+[ "batcalc",   "str",  "pattern batcalc.str(b:bat[:any],s:bat[:oid]):bat[:str] 
",      "CMDconvertsignal_str;",        "cast from any to str with candidates 
list, signal error on overflow"   ]
 [ "batcalc",   "str",  "pattern 
batcalc.str(eclass:int,d1:int,s1:int,has_tz:int,v:bat[:any_1],digits:int):bat[:str]
 ", "SQLbatstr_cast;",      "cast to string and check for overflow" ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:bit]):bat[:str] ",  "CMDconvert_str;",      "cast 
from bit to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:bit],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from bit to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:bte]):bat[:str] ",  "CMDconvert_str;",      "cast 
from bte to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:bte],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from bte to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:dbl]):bat[:str] ",  "CMDconvert_str;",      "cast 
from dbl to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:dbl],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from dbl to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:flt]):bat[:str] ",  "CMDconvert_str;",      "cast 
from flt to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:flt],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from flt to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:hge]):bat[:str] ",  "CMDconvert_str;",      "cast 
from hge to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:hge],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from hge to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:int]):bat[:str] ",  "CMDconvert_str;",      "cast 
from int to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:int],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from int to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:lng]):bat[:str] ",  "CMDconvert_str;",      "cast 
from lng to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:lng],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from lng to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:oid]):bat[:str] ",  "CMDconvert_str;",      "cast 
from oid to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:oid],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from oid to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:sht]):bat[:str] ",  "CMDconvert_str;",      "cast 
from sht to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:sht],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from sht to str with candidates list"     ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:str]):bat[:str] ",  "CMDconvert_str;",      "cast 
from str to str"  ]
-[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:str],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from str to str with candidates list"     ]
+[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:any]):bat[:str] ",  "CMDconvert_str;",      "cast 
from any to str"  ]
+[ "batcalc",   "str_noerror",  "pattern 
batcalc.str_noerror(b:bat[:any],s:bat[:oid]):bat[:str] ",      
"CMDconvert_str;",      "cast from any to str with candidates list"     ]
 [ "batcalc",   "strings",      "command batcalc.strings(v:bat[:str]):bat[:str] 
",      "BATSTRstrings;",       "Return the strings"    ]
 [ "batcalc",   "sub_noerror",  "pattern 
batcalc.sub_noerror(b1:bat[:bte],b2:bat[:bte]):bat[:bte] ",    "CMDbatSUB;",   
"Return B1 - B2, overflow causes NIL value"     ]
 [ "batcalc",   "sub_noerror",  "pattern 
batcalc.sub_noerror(b1:bat[:bte],b2:bat[:bte],s:bat[:oid]):bat[:bte] ",        
"CMDbatSUB;",   "Return B1 - B2 with candidates list, overflow causes NIL 
value"        ]
@@ -9664,17 +9628,7 @@ Ready.
 [ "calc",      "sqlblob",      "command calc.sqlblob(b:sqlblob):sqlblob ",     
"BLOBblob_blob;",       ""      ]
 [ "calc",      "sqlblob",      "command calc.sqlblob(s:str):sqlblob ", 
"BLOBsqlblob_fromstr;", ""      ]
 [ "calc",      "sqlblob",      "command calc.sqlblob(v:str):sqlblob ", 
"str_2_sqlblob;",       "cast to sqlblob"       ]
-[ "calc",      "str",  "pattern calc.str(v:bit):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:bte):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:dbl):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:flt):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:hge):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:int):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:lng):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:oid):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:sht):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:str):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
-[ "calc",      "str",  "pattern calc.str(v:void):str ",        
"CMDvarCONVERT;",       "Cast VALUE to str"     ]
+[ "calc",      "str",  "pattern calc.str(v:any):str ", "CMDvarCONVERT;",       
"Cast VALUE to str"     ]
 [ "calc",      "str",  "command calc.str(v:date):str ",        
"SQLdate_2_str;",       "cast date to str"      ]
 [ "calc",      "str",  "command calc.str(v:sqlblob):str ",     
"SQLsqlblob_2_str;",    "cast sqlblob to str"   ]
 [ "calc",      "str",  "pattern 
calc.str(eclass:int,d1:int,s1:int,has_tz:int,v:any_1,digits:int):str ",        
"SQLstr_cast;", "cast to string and check for overflow" ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -484,7 +484,6 @@ int strFromStr(const char *src, int *len
 BUN strHash(const char *s);
 int strLen(const char *s);
 int strNil(const char *s);
-int strToStr(str *dst, int *len, const char *src);
 const char str_nil[2];
 gdk_return void_inplace(BAT *b, oid id, const void *val, bit force);
 BUN void_replace_bat(BAT *b, BAT *p, BAT *u, bit force);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -44,6 +44,7 @@
 #include "msqldump.h"
 #include "mprompt.h"
 #include "dotmonetdb.h"
+
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
@@ -188,6 +189,9 @@ static char *nullstring = default_nullst
 
 #define my_isspace(c)  ((c) == '\f' || (c) == '\n' || (c) == ' ')
 
+#include <ctype.h>
+#include "mhelp.c"
+
 static timertype
 gettime(void)
 {
@@ -2721,11 +2725,14 @@ doFile(Mapi mid, stream *fp, int useinse
                                        int h;
                                        char *nl;
 
-                                       for (h = 0; h < history_length; h++) {
-                                               nl = history_get(h) ? 
history_get(h)->line : 0;
-                                               if (nl)
-                                                       mnstr_printf(toConsole, 
"%d %s\n", h, nl);
-                                       }
+                                       if( strcmp(line,"\\history") ==0){
+                                               for (h = 0; h < history_length; 
h++) {
+                                                       nl = history_get(h) ? 
history_get(h)->line : 0;
+                                                       if (nl)
+                                                               
mnstr_printf(toConsole, "%d %s\n", h, nl);
+                                               }
+                                       } else
+                                               sql_help(line);
                                        continue;
                                }
 /* for later
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
new file mode 100644
--- /dev/null
+++ b/clients/mapiclient/mhelp.c
@@ -0,0 +1,654 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V.
+ */
+
+/**
+ * 2016 Martin Kersten
+ *
+ * The SQL syntax help synopsis.
+ */
+
+/* produce a synposis of the SQL syntax, inspired by a competing product */
+
+typedef struct{
+       char *command;
+       char *synopsis;
+       char *syntax;
+       char *rules;
+       char *comments;
+} SQLhelp;
+
+SQLhelp sqlhelp[]={
+       // major commands
+       { "ALTER TABLE",
+         "",
+         "ALTER TABLE qname ADD [ COLUMN ] { column_def | table_constraint }\n"
+         "ALTER TABLE qname ADD TABLE qname\n"
+         "ALTER TABLE qname ALTER alter_table_element\n"
+         "ALTER TABLE qname DROP drop_table_element\n"
+         "ALTER TABLE qname SET { { READ | INSERT } ONLY | READ WRITE }",
+         "column_def,table_constraint,alter_table_element,drop_table_element",
+       0
+       },
+       { "ALTER SEQUENCE",
+         "",
+         "ALTER SEQUENCE ident [ AS datatype] [ RESTART [WITH start]] 
[INCREMENT BY increment]\n"
+         "[MINVALUE minvalue | NO MINVALUE]  [MAXVALUE maxvalue | NOMAXVALUE] 
| [ [ NO] CYCLE]",
+         0,0
+       },
+       { "ALTER USER",
+         "",
+         "ALTER USER ident { password_scheme  | RENAME TO ident }",
+         "password_scheme", 0
+       },
+    { "ANALYZE",
+         "Collect statistics for optimizations",
+         "ANALYZE qname [column_list] [sample] [MINMAX]",
+         "column_list,sample",
+         0
+       },
+       { "CALL",
+         "",
+         "CALL qname '(' [ [scalar_expression ] [ ',' ...]  ]')' | CALL ident 
'.' ident",
+         0,0
+       },
+       { "CASE",
+         "",
+         "CASE  scalar_expression [ when_statement ...]  [ELSE 
procedure_statement ... ] END CASE",
+         0,0
+       },
+    { "COMMIT",
+         "Commit the current transaction",
+         "COMMIT [ WORK ] [ AND CHAIN | AND NO CHAIN ]",
+         0,0
+       },
+       { "COPY BINARY",
+         "",
+         "COPY [integer OFFSET] [integer RECORDS] BINARY INTO qname 
column_list FROM string_list [NO CONSTRAINT]",
+         "",
+         "see 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/BinaryBulkLoad";
+       },
+       { "COPY INTO",
+         "",
+         "COPY query_expression INTO [STDOUT | string] [seps] [null_string]",
+         "seps",
+       "see 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/LoadingBulkData";
+       },
+       { "COPY LOADER",
+         "",
+         "COPY LOADER INTO qname FROM qname '(' [ scalar_expression ... ] ')'",
+        0,0
+       },
+       { "CREATE AGGREGATE FUNCTION",
+         "",
+         "CREATE AGGREGATE  FUNCTION qname '(' { '*' | [ param [',' ...]] } 
')'\n"
+         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
+         "    EXTERNAL NAME ident ',' ident\n"
+         "CREATE AGGREGATE FUNCTION qname '(' { '*' | [ param [',' ...]] 
}')'\n"
+         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
+         "    LANGUAGE ident external_code",
+         "param,data_type,function_return",
+         0
+       },
+       { "CREATE FILTER FUNCTION",
+         "",
+         "CREATE FILTER  FUNCTION qname '(' { '*' | [ param [',' ...]] } ')'\n"
+         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
+         "    EXTERNAL NAME ident ',' ident",
+         "param,data_type,function_return",
+         0
+       },
+       { "CREATE FUNCTION",
+         "",
+         "CREATE FUNCTION qname '(' { '*' | [ param [',' ...]] } ')'\n"
+         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
+         "    EXTERNAL NAME ident ',' ident\n"
+         "CREATE FUNCTION qname '(' { '*' | [ param [',' ...]] } ')'\n"
+         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
+         "    BEGIN [ ATOMIC ] statement [ ';' ...] END\n"
+         "CREATE FUNCTION qname '(' { '*' | [ param [',' ...]] }')'\n"
+         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
+         "    LANGUAGE ident external_code",
+         "param,data_type,function_return,external_code",
+         0
+       },
+       { "CREATE INDEX",
+         "",
+         "CREATE [ UNIQUE | ORDERED | IMPRINTS ] INDEX ident ON qname '(' 
ident_list ')'",
+         0,0
+       },
+       { "CREATE PROCEDURE",
+         "",
+         "CREATE PROCEDURE qname '(' { '*' | [ param [',' ...]] }')'\n"
+         "    EXTERNAL NAME ident ',' ident\n"
+         "CREATE PROCEDURE qname '(' { '*' | [ param [',' ...]] } ')'\n"
+         "    BEGIN [ ATOMIC ] procedure_statement [ ';' ...] END\n"
+         "CREATE PROCEDURE qname '(' { '*' | [ param [',' ...]] } ')'\n"
+         "    LANGUAGE ident external_code",
+         "param,data_type,external_code",
+         0
+       },
+       { "CREATE LOADER",
+         "",
+         "CREATE LOADER qname '(' [ param [',' ...]] ')'\n"
+         "    LANGUAGE ident external_code",
+         "param,data_type,function_return,external_code",
+         0
+       },
+       { "CREATE REMOTE TABLE",
+         "",
+         "CREATE REMOTE TABLE qname ON string",
+        0,"remote name should match 
mapi:monetdb://host:port/database[/schema[/table]]"
+       },
+    { "CREATE SCHEMA",
+         "",
+         "CREATE SCHEMA schema_name [default_char_set] [path_spec] 
[schema_element]",
+         "schema_name,default_char_set,path_spec,schema_element",
+         0
+       },
+       { "CREATE SEQUENCE",
+         "Define a new sequence generator",
+         "CREATE SEQUENCE ident   [ AS datatype] [ START [WITH start]] 
[INCREMENT BY increment]\n"
+         "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NOMAXVALUE] | 
[ [ NO] CYCLE]",
+         0, 0
+       },
+       { "CREATE STREAM TABLE",
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to