Changeset: 99c83eb1a3db for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=99c83eb1a3db
Modified Files:
        clients/mapiclient/mhelp.c
Branch: Jul2017
Log Message:

Extending mclient help syntax for new SQL functionality added by Mark:
- CREATE SCHEMA IF NOT EXISTS / DROP SCHEMA IF EXISTS
- CREATE TABLE IF NOT EXISTS / DROP TABLE IF EXISTS  (the CREATE TABLE IF NOT 
EXISTS applies to all table types, so TEMPORARY, MERGE, REPLICA, REMOTE, etc)
- DROP VIEW IF EXISTS
- CREATE OR REPLACE FUNCTION/AGGREGATE/PROCEDURE/FILTER FUNCTION/LOADER
- LIMIT, ORDER BY, SAMPLE and OFFSET in subqueries.
Correcting & adding syntax for DROP FUNCTION/AGGREGATE/PROCEDURE/FILTER 
FUNCTION/LOADER
Correcting syntax for ANALYZE


diffs (236 lines):

diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -74,8 +74,8 @@ SQLhelp sqlhelp[] = {
         NULL,
         "See also https://www.monetdb.org/Documentation/SQLreference/Users"},
        {"ANALYZE",
-        "Collect statistics for optimizations",
-        "ANALYZE qname [column_list] [SAMPLE size] [MINMAX]",
+        "Collect column data statistics for optimizations",
+        "ANALYZE schemaname [ . tablename [ column_list ] ] [SAMPLE size] 
[MINMAX]",
         "column_list",
         "See also 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/statistics"},
        {"CALL",
@@ -85,7 +85,7 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"CASE",
         "Case statement for procedures/functions",
-        "CASE  scalar_expression [ when_statement ...]  [ELSE 
procedure_statement ... ] END CASE",
+        "CASE scalar_expression [ when_statement ...]  [ELSE 
procedure_statement ... ] END CASE",
         NULL,
         "See also 
https://www.monetdb.org/Documentation/SQLreference/Flowofcontrol"},
        {"COMMIT",
@@ -97,7 +97,7 @@ SQLhelp sqlhelp[] = {
         "Append binary representations into a table",
         "COPY [nrofrecords] BINARY INTO qname [column_list] FROM string 
[','...] [NO CONSTRAINT]",
         "nrofrecords",
-        "see 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/BinaryBulkLoad"},
+        "See also 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/BinaryBulkLoad"},
        {"COPY INTO",
         "Parse a csv-file into a table",
         "COPY [nrofrecords] INTO qname [column_list] FROM string [','...] 
[headerlist] [ separators]\n"
@@ -114,32 +114,31 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"CREATE AGGREGATE FUNCTION",
         "",
-        "CREATE AGGREGATE  FUNCTION qname '(' { '*' | [ param [',' ...]] } 
')'\n"
+        "CREATE [ OR REPLACE ] AGGREGATE FUNCTION qname '(' { '*' | [ param 
[',' ...]] } ')'\n"
         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
         "    EXTERNAL NAME ident ',' ident\n"
-        "CREATE AGGREGATE FUNCTION qname '(' { '*' | [ param [',' ...]] }')'\n"
+        "CREATE [ OR REPLACE ] AGGREGATE FUNCTION qname '(' { '*' | [ param 
[',' ...]] }')'\n"
         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
         "    LANGUAGE ident external_code",
         "param,data_type,function_return",
         NULL},
        {"CREATE FILTER FUNCTION",
         "",
-        "CREATE FILTER  FUNCTION qname '(' { '*' | [ param [',' ...]] } ')'\n"
+        "CREATE [ OR REPLACE ] FILTER FUNCTION qname '(' { '*' | [ param [',' 
...]] } ')'\n"
         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
         "    EXTERNAL NAME ident ',' ident",
         "param,data_type,function_return",
         NULL},
        {"CREATE FUNCTION",
         "",
-        "CREATE FUNCTION qname '(' { '*' | [ param [',' ...]] } ')'\n"
+        "CREATE [ OR REPLACE ] FUNCTION qname '(' { '*' | [ param [',' ...]] } 
')'\n"
         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
         "    EXTERNAL NAME ident ',' ident\n"
-        "CREATE FUNCTION qname '(' { '*' | [ param [',' ...]] } ')'\n"
+        "CREATE [ OR REPLACE ] FUNCTION qname '(' { '*' | [ param [',' ...]] } 
')'\n"
         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
         "    BEGIN [ ATOMIC ] statement [ ';' ...] END\n"
-        "CREATE FUNCTION qname '(' { '*' | [ param [',' ...]] }')'\n"
+        "CREATE [ OR REPLACE ] FUNCTION qname '(' { '*' | [ param [',' ...]] 
}')'\n"
         "    RETURNS { data_type | TABLE '(' function_return [ ',' ... ] ')' 
}\n"
-
         "    LANGUAGE ident external_code",
         "param,data_type,function_return,external_code",
         NULL},
@@ -150,56 +149,56 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"CREATE PROCEDURE",
         "",
-        "CREATE PROCEDURE qname '(' { '*' | [ param [',' ...]] }')'\n"
+        "CREATE [ OR REPLACE ] PROCEDURE qname '(' { '*' | [ param [',' ...]] 
}')'\n"
         "    EXTERNAL NAME ident ',' ident\n"
-        "CREATE PROCEDURE qname '(' { '*' | [ param [',' ...]] } ')'\n"
+        "CREATE [ OR REPLACE ] PROCEDURE qname '(' { '*' | [ param [',' ...]] 
} ')'\n"
         "    BEGIN [ ATOMIC ] procedure_statement [ ';' ...] END\n"
-        "CREATE PROCEDURE qname '(' { '*' | [ param [',' ...]] } ')'\n"
+        "CREATE [ OR REPLACE ] PROCEDURE qname '(' { '*' | [ param [',' ...]] 
} ')'\n"
         "    LANGUAGE ident external_code",
         "param,data_type,external_code",
         NULL},
        {"CREATE LOADER",
         "",
-        "CREATE LOADER qname '(' [ param [',' ...]] ')'\n"
+        "CREATE [ OR REPLACE ] LOADER qname '(' [ param [',' ...]] ')'\n"
         "    LANGUAGE ident external_code",
         "param,data_type,function_return,external_code",
         NULL},
        {"CREATE MERGE TABLE",
         "",
-        "CREATE MERGE TABLE qname table_source;",
+        "CREATE MERGE TABLE [ IF NOT EXISTS ] qname table_source;",
         NULL,
         "See also 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/DataPartitioning"},
        {"CREATE REMOTE TABLE",
         "",
-        "CREATE REMOTE TABLE qname ON string",
+        "CREATE REMOTE TABLE [ IF NOT EXISTS ] qname ON string",
         NULL,
         "remote name should match 
mapi:monetdb://host:port/database[/schema[/table]]"},
        {"CREATE REPLICA TABLE",
         "",
-        "CREATE REPLICA TABLE qname table_source;",
+        "CREATE REPLICA TABLE [ IF NOT EXISTS ] qname table_source;",
         NULL,
-        
"https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/TransactionReplication"},
+        "See also 
https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/TransactionReplication"},
        {"CREATE SCHEMA",
         "",
-        "CREATE SCHEMA schema_name [default_char_set] [path_spec] 
[schema_element]",
+        "CREATE SCHEMA [ IF NOT EXISTS ] schema_name [default_char_set] 
[path_spec] [schema_element]",
         "schema_name,default_char_set,path_spec,schema_element",
         NULL},
        {"CREATE SEQUENCE",
         "Define a new sequence generator",
-        "CREATE SEQUENCE ident   [ AS datatype] [ START [WITH start]] 
[INCREMENT BY increment]\n"
+        "CREATE SEQUENCE ident [ AS datatype] [ START [WITH start]] [INCREMENT 
BY increment]\n"
         "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NOMAXVALUE] | 
[ [ NO] CYCLE]",
         NULL,
         "See also 
https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"},
        {"CREATE STREAM TABLE",
         "Temporary table, locked during updates/ continues query processing",
-        "CREATE STREAM TABLE qname table_source\n",
+        "CREATE STREAM TABLE [ IF NOT EXISTS ] qname table_source\n",
         NULL,
         NULL},
        {"CREATE TABLE",
         "",
-        "CREATE TABLE qname table_source [STORAGE ident string]\n"
-        "CREATE TABLE qname FROM LOADER function_ref\n"
-        "CREATE [ LOCAL | GLOBAL ] TEMP[ORARY] TABLE qname table_source 
[on_commit]",
+        "CREATE TABLE [ IF NOT EXISTS ] qname table_source [STORAGE ident 
string]\n"
+        "CREATE TABLE [ IF NOT EXISTS ] qname FROM LOADER function_ref\n"
+        "CREATE [ LOCAL | GLOBAL ] TEMP[ORARY] TABLE [ IF NOT EXISTS ] qname 
table_source [on_commit]",
         "table_source,on_commit,function_ref",
         NULL},
        {"CREATE TRIGGER",
@@ -215,7 +214,7 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"CREATE VIEW",
         "",
-        "CREATE VIEW qname [ column_list ] AS { query_expression | '(' 
query_expression ') } [ WITH CHECK OPTION]",
+        "CREATE VIEW qname [ column_list ] AS { query_expression | '(' 
query_expression ') } [ WITH CHECK OPTION ]",
         "column_list,query_expression",
         NULL},
        {"CURRENT_DATE",
@@ -260,13 +259,14 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"DROP AGGREGATE",
         "",
-        "DROP AGGREGATE qname [ RESTRICT | CASCADE ]",
+        "DROP ALL AGGREGATE qname [ RESTRICT | CASCADE ]\n"
+        "DROP AGGREGATE qname [ '(' [ param [',' ...]] ')' ] [ RESTRICT | 
CASCADE ]",
         NULL,
         NULL},
        {"DROP FUNCTION",
         "",
         "DROP ALL [FILTER] FUNCTION qname [ RESTRICT | CASCADE ]\n"
-        "DROP routine_designator [ RESTRICT | CASCADE ]",
+        "DROP [FILTER] FUNCTION qname [ '(' [ param [',' ...]] ')' ] [ 
RESTRICT | CASCADE ]",
         NULL,
         NULL},
        {"DROP INDEX",
@@ -276,12 +276,14 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"DROP LOADER",
         "",
-        "DROP ALL LOADED qname [ RESTRICT | CASCADE ]",
+        "DROP ALL LOADER qname [ RESTRICT | CASCADE ]\n"
+        "DROP LOADER qname [ '(' [ param [',' ...]] ')' ] [ RESTRICT | CASCADE 
]",
         NULL,
         NULL},
        {"DROP PROCEDURE",
         "",
-        "DROP PROCEDURE qname [ RESTRICT | CASCADE ]",
+        "DROP ALL PROCEDURE qname [ RESTRICT | CASCADE ]\n"
+        "DROP PROCEDURE qname [ '(' [ param [',' ...]] ')' ] [ RESTRICT | 
CASCADE ]",
         NULL,
         NULL},
        {"DROP ROLE",
@@ -291,7 +293,7 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"DROP SCHEMA",
         "",
-        "DROP SCHEMA qname [ RESTRICT | CASCADE ]",
+        "DROP SCHEMA [ IF EXISTS ] qname [ RESTRICT | CASCADE ]",
         NULL,
         NULL},
        {"DROP SEQUENCE",
@@ -301,7 +303,7 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"DROP TABLE",
         "",
-        "DROP TABLE qname [ RESTRICT | CASCADE ]",
+        "DROP TABLE [ IF EXISTS ] qname [ RESTRICT | CASCADE ]",
         NULL,
         NULL},
        {"DROP TRIGGER",
@@ -321,7 +323,7 @@ SQLhelp sqlhelp[] = {
         NULL},
        {"DROP VIEW",
         "",
-        "DROP VIEW qname [ RESTRICT | CASCADE ]",
+        "DROP VIEW [ IF EXISTS ] qname [ RESTRICT | CASCADE ]",
         NULL,
         NULL},
        {"IF",
@@ -520,11 +522,10 @@ SQLhelp sqlhelp[] = {
         "DATE  | TIME [ time_precision ] tz | TIMESTAMP [ timestamp_precision 
] tz",
         "time_precision,timestamp_precision,tz",
         NULL},
-       {
-        "data_type",
+       {"data_type",
         NULL,
-        "[ [ CHARACTER | VARCHAR | CLOB | BLOB] [ '(' nonzero ')' ] |\n"
-        "TINYINT | SMALLINT | BIGINT | HUGEINT | [ DECIMAL | FLOAT] [ '(' 
nonzero [',' nonzero ] ')'] |\n"
+        "[ [ CHAR[ACTER] | VARCHAR | CLOB | TEXT | BLOB] [ '(' nonzero ')' ] 
|\n"
+        "TINYINT | SMALLINT | INT[EGER] | BIGINT | HUGEINT | [ DECIMAL | 
FLOAT] [ '(' nonzero [',' nonzero ] ')'] |\n"
         " DOUBLE [ PRECISION ] | REAL | datetime_type | interval_type | 
geometry_type",
         "datetime_type,interval_type,geometry_type",
         NULL},
@@ -553,7 +554,7 @@ SQLhelp sqlhelp[] = {
         "AUTO_INCREMENT | GENERATED ALWAYS AS IDENTITY [ '(' [ AS datatype] [ 
START [WITH start]] [INCREMENT BY increment]\n"
         "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NOMAXVALUE] | 
[ [ NO] CYCLE] ')' ] ",
         NULL,
-        "see 
https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"},
+        "See also 
https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"},
        {"global_privileges",
         NULL,
         "{ COPY FROM | COPY INTO } [ ',' ... ]",
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to