Changeset: bc282972de56 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bc282972de56
Modified Files:
sql/backends/monet5/sql.c
sql/server/rel_dump.c
sql/server/rel_schema.c
sql/server/sql_parser.y
Branch: default
Log Message:
Merge with Aug2024 branch.
diffs (truncated from 442 to 300 lines):
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -61,9 +61,9 @@ SQLhelp sqlhelp1[] = {
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-definition/schema-definitions/"},
{"ALTER SEQUENCE",
"",
- "ALTER SEQUENCE qname [ AS seq_int_datatype] [ RESTART [WITH intval]]
[INCREMENT BY intval]\n"
- "[MINVALUE intval | NO MINVALUE] [MAXVALUE intval | NO MAXVALUE]
[CACHE intval] [[NO] CYCLE]",
- "seq_int_datatype,intval",
+ "ALTER SEQUENCE qname [AS seq_int_datatype] [RESTART [WITH
{bigint|subquery}] ] [INCREMENT BY bigint]\n"
+ " [MINVALUE bigint | NO MINVALUE] [MAXVALUE bigint | NO MAXVALUE]
[CACHE bigint] [[NO] CYCLE]",
+ "seq_int_datatype",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-types/serial-types/"},
{"ALTER TABLE",
"",
@@ -226,9 +226,9 @@ SQLhelp sqlhelp1[] = {
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-definition/schema-definitions/"},
{"CREATE SEQUENCE",
"Define a new integer number sequence generator",
- "CREATE SEQUENCE qname [ AS seq_int_datatype] [ START [WITH intval]]
[INCREMENT BY intval]\n"
- "[MINVALUE intval | NO MINVALUE] [MAXVALUE intval | NO MAXVALUE]
[CACHE intval] [[NO] CYCLE]",
- "seq_int_datatype,intval",
+ "CREATE SEQUENCE qname [AS seq_int_datatype] [START WITH bigint]
[INCREMENT BY bigint]\n"
+ " [MINVALUE bigint | NO MINVALUE] [MAXVALUE bigint | NO MAXVALUE]
[CACHE bigint] [[NO] CYCLE]",
+ "seq_int_datatype",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-types/serial-types/"},
{"CREATE TABLE",
"Create a new table",
@@ -622,9 +622,10 @@ SQLhelp sqlhelp2[] = {
NULL},
{"column_constraint",
NULL,
- "[ CONSTRAINT ident ] { NOT NULL | NULL | UNIQUE | PRIMARY KEY | CHECK
'(' search_condition ')' |\n"
- " REFERENCES qname [ column_list ] [ match_options ] [
reference_action ] }\n",
- "column_list,search_condition,match_options,reference_action",
+ "[ CONSTRAINT ident ] { NOT NULL | NULL | CHECK '(' search_condition
')' |\n"
+ " PRIMARY KEY | UNIQUE | UNIQUE NULLS [ NOT ] DISTINCT |\n"
+ " REFERENCES qname [ column_list ] [ match_option ] [
reference_actions ] }",
+ "column_list,search_condition,reference_actions,match_option",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-definition/table-elements/"},
{"control_statement",
NULL,
@@ -675,8 +676,9 @@ SQLhelp sqlhelp2[] = {
NULL},
{"generated_column",
NULL,
- "AUTO_INCREMENT | GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ '('
[ AS seq_int_datatype] [ START [WITH start]]\n"
- " [INCREMENT BY increment] [MINVALUE minvalue | NO MINVALUE] [MAXVALUE
maxvalue | NO MAXVALUE] [CACHE cachevalue] [[NO] CYCLE] ')' ]",
+ "AUTO_INCREMENT | GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [
'('\n"
+ " [AS seq_int_datatype] [START WITH bigint] [INCREMENT BY bigint]\n"
+ " [MINVALUE bigint | NO MINVALUE] [MAXVALUE bigint | NO MAXVALUE]
[CACHE bigint] [[NO] CYCLE] ')' ]",
"seq_int_datatype",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-types/serial-types/"},
{"global_privileges",
@@ -733,11 +735,6 @@ SQLhelp sqlhelp2[] = {
"INTERVAL { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND
[time_precision] | start_field TO end_field }",
"time_precision,start_field,end_field",
NULL},
- {"intval",
- "Integer value",
- NULL,
- NULL,
- NULL},
{"isolevel",
NULL,
"READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE",
@@ -748,9 +745,9 @@ SQLhelp sqlhelp2[] = {
"C | CPP | R | PYTHON | PYTHON3",
NULL,
NULL},
- {"match_options",
+ {"match_option",
NULL,
- "MATCH { FULL | PARTIAL | SIMPLE }",
+ "MATCH [ FULL | PARTIAL | SIMPLE ]",
NULL,
NULL},
{"merge_list",
@@ -868,9 +865,24 @@ SQLhelp sqlhelp2[] = {
"ident [ '.' ident ['.' ident]]",
NULL,
NULL},
- {"reference_action",
+ {"ref_action",
+ NULL,
+ "RESTRICT | CASCADE | NO ACTION | SET NULL | SET DEFAULT",
+ NULL,
+ NULL},
+ {"ref_on_delete",
+ NULL,
+ "ON DELETE ref_action",
NULL,
- "ON { UPDATE | DELETE } { NO ACTION | CASCADE | RESTRICT | SET NULL |
SET DEFAULT }",
+ NULL},
+ {"ref_on_update",
+ NULL,
+ "ON UPDATE ref_action",
+ NULL,
+ NULL},
+ {"reference_actions",
+ NULL,
+ "ref_on_delete | ref_on_update | ref_on_delete ref_on_update |
ref_on_update ref_on_delete",
NULL,
NULL},
{"return_statement",
@@ -911,9 +923,9 @@ SQLhelp sqlhelp2[] = {
{"table_constraint",
NULL,
"[ CONSTRAINT ident ] { CHECK '(' search_condition ')' |\n"
- " PRIMARY KEY column_list | UNIQUE column_list |\n"
- " FOREIGN KEY column_list REFERENCES qname [ column_list ] [
match_options ] [ reference_action ] }",
- "column_list,search_condition,match_options,reference_action",
+ " PRIMARY KEY column_list | UNIQUE column_list | UNIQUE NULLS [ NOT
] DISTINCT column_list |\n"
+ " FOREIGN KEY column_list REFERENCES qname [ column_list ] [
match_option ] [ reference_actions ] }",
+ "column_list,search_condition,reference_actions,match_option",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-definition/table-elements/"},
{"table_element",
NULL,
@@ -958,7 +970,7 @@ SQLhelp sqlhelp2[] = {
NULL},
{"transactionmode",
NULL,
- "{ READ ONLY | READ WRITE | ISOLATION LEVEL isolevel | DIAGNOSTICS
intval } [ , ... ]",
+ "{ READ ONLY | READ WRITE | ISOLATION LEVEL isolevel | DIAGNOSTICS
integer } [ , ... ]",
"isolevel",
"Note: DIAGNOSTICS is not yet implemented"},
{"trigger_reference",
diff --git a/clients/mapiclient/msqldump.1 b/clients/mapiclient/msqldump.1
--- a/clients/mapiclient/msqldump.1
+++ b/clients/mapiclient/msqldump.1
@@ -135,7 +135,7 @@ option are specified, the last one is us
The
.B \-\-outputdir
option is not compatible with the
-\B \-\-inserts
+.B \-\-inserts
option.
.TP
\fB\-\-compression=\fP\fIextension\fP (\fB\-x\fP \fIextension\fP)
diff --git a/documentation/source/manual_pages/msqldump.rst
b/documentation/source/manual_pages/msqldump.rst
--- a/documentation/source/manual_pages/msqldump.rst
+++ b/documentation/source/manual_pages/msqldump.rst
@@ -48,7 +48,7 @@ OPTIONS
**--host=**\ *hostname* (**-h** *hostname*)
Specify the name of the host on which the server runs (default:
- localhost).
+ **localhost**).
**--port=**\ *portnr* (**-p** *portnr*)
Specify the portnumber of the server (default: 50000).
@@ -91,8 +91,8 @@ OPTIONS
**--compression** option is used, the CSV files will be compressed
using the specified compression scheme. If both the **--outputdir**
option and the **--output** option are specified, the last one is
- used. The **--outputdir** option is not compatible with the --inserts
- option.
+ used. The **--outputdir** option is not compatible with the
+ **--inserts** option.
**--compression=**\ *extension* (**-x** *extension*\ )
Compress the CSV files produced with the **--outputdir** option using
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -216,7 +216,7 @@ typedef struct MALSTK {
* for use in profiling instructions.
*/
struct timeval clock; /* time this stack was created */
- char status; /* srunning 'R' suspended 'S',
quitting 'Q' */
+ char status; /* running 'R' suspended 'S',
quitting 'Q' */
int pcup; /* saved pc upon a
recursive all */
oid tag; /* unique invocation
call tag */
lng memory; /* Actual memory claims
for highwater mark */
diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -1754,7 +1754,7 @@ JSONplaintext(char **r, size_t *l, size_
} else if ((u & 0xFC00) == 0xD800) {
/* high surrogate; must be
followed by low surrogate */
*(*r)++ = 0xF0 | (((u & 0x03C0)
+ 0x0040) >> 8);
- *(*r)++ = 0x80 | ((((u &
0x03C0) + 0x0040) >> 2) & 0x3F);
+ *(*r)++ = 0x80 | ((((u & 0x3FF)
+ 0x0040) >> 2) & 0x3F);
**r = 0x80 | ((u & 0x0003) <<
4); /* no increment */
(*l) -= 2;
} else if ((u & 0xFC00) == 0xDC00) {
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -5510,7 +5510,7 @@ SQLcheck(Client cntxt, MalBlkPtr mb, Mal
str msg = NULL;
str *r = getArgReference_str(stk, pci, 0);
const char *sname = *getArgReference_str(stk, pci, 1);
- const char *cname = *getArgReference_str(stk, pci, 2);
+ const char *kname = *getArgReference_str(stk, pci, 2);
if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
return msg;
@@ -5519,7 +5519,7 @@ SQLcheck(Client cntxt, MalBlkPtr mb, Mal
(void)sname;
sql_schema *s = mvc_bind_schema(m, sname);
if (s) {
- sql_key *k = mvc_bind_key(m, s, cname);
+ sql_key *k = mvc_bind_key(m, s, kname);
if (k && k->check) {
int pos = 0;
sql_rel *rel = rel_basetable(m, k->t, k->t->base.name);
diff --git a/sql/include/sql_relation.h b/sql/include/sql_relation.h
--- a/sql/include/sql_relation.h
+++ b/sql/include/sql_relation.h
@@ -72,6 +72,7 @@ typedef struct expression {
symmetric:1; /* compare between symmetric */
sql_subtype tpe;
void *p; /* properties for the optimizer */
+ str comment;
} sql_exp;
#define TABLE_PROD_FUNC 1
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -348,6 +348,12 @@ exp_print(mvc *sql, stream *fout, sql_ex
mnstr_printf(fout, "\"%s\".",
dump_escape_ident(sql->ta, exp_relname(e)));
mnstr_printf(fout, "\"%s\"", dump_escape_ident(sql->ta,
exp_name(e)));
}
+
+ if (e->comment) {
+ str s = ATOMformat(TYPE_str, e->comment);
+ mnstr_printf(fout, " COMMENT %s ", s);
+ GDKfree(s);
+ }
if (comma)
mnstr_printf(fout, ", ");
}
@@ -1763,6 +1769,19 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
if (rlabel && rlabel == nlabel)
exp->alias.label = rlabel;
}
+
+ skipWS(r, pos);
+
+
+ //void *ptr = readAtomString(tpe->type->localtype, r, pos);
+ if (strncmp(r+*pos, "COMMENT", strlen("COMMENT")) == 0) {
+ (*pos)+= (int) strlen("COMMENT");
+ skipWS(r, pos);
+ str comment = readAtomString(TYPE_str, r, pos);
+ exp->comment = sa_strdup(sql->sa, comment);
+ GDKfree(comment);
+ }
+
return exp;
}
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -412,9 +412,11 @@ create_check_plan(sql_query *query, symb
mvc *sql = query->sql;
exp_kind ek = {type_value, card_value, FALSE};
sql_rel *rel = rel_basetable(sql, t, t->base.name);
- sql_exp *e = rel_logical_value_exp(query, &rel, s->data.sym, sql_sel |
sql_no_subquery, ek);
+ sql_exp *e = rel_logical_value_exp(query, &rel,
s->data.lval->h->data.sym, sql_sel | sql_no_subquery, ek);
+
if (!e || !rel || !is_basetable(rel->op))
return NULL;
+ e->comment = sa_strdup(sql->sa, s->data.lval->h->next->data.sval);
rel->exps = rel_base_projection(sql, rel, 0);
list *pexps = sa_list(sql->sa);
pexps = append(pexps, e);
diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -243,6 +243,8 @@ int yydebug=1;
column_exp
column_option
column_options
+ check_parenthesis_open
+ check_search_condition
comment_on_statement
comparison_predicate
control_statement
@@ -429,6 +431,7 @@ int yydebug=1;
blobstring
calc_ident
calc_restricted_ident
+ check_parenthesis_close
clob
column
forest_element_name
@@ -661,6 +664,8 @@ int yydebug=1;
%right <sval> STRING USTRING XSTRING
%right <sval> X_BODY
+%token name
+
/* sql prefixes to avoid name clashes on various architectures */
%token <sval>
IDENT UIDENT aTYPE RANK MARGFUNC sqlINT OIDNUM HEXADECIMALNUM OCTALNUM
BINARYNUM INTNUM APPROXNUM
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]