Changeset: d0f8984d74e4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d0f8984d74e4
Modified Files:
gdk/gdk_batop.c
gdk/gdk_private.h
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_upgrades.c
sql/include/sql_relation.h
sql/server/rel_optimize_proj.c
sql/server/rel_schema.c
sql/server/rel_updates.c
sql/storage/bat/bat_storage.c
sql/storage/store.c
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/miscellaneous/Tests/simple_plans.test
sql/test/miscellaneous/Tests/simple_selects.test
Branch: properties
Log Message:
Merged with default
diffs (truncated from 19314 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
@@ -1267,6 +1267,7 @@ describe_table(Mapi mid, const char *sch
type == 4 ? "STREAM " :
type == 5 ? "REMOTE " :
type == 6 ? "REPLICA " :
+ type == 7 ? "UNLOGGED " :
"");
dquoted_print(toConsole, schema, ".");
dquoted_print(toConsole, tname, " ");
@@ -1724,6 +1725,10 @@ dump_table_data(Mapi mid, const char *sc
/* replica table */
goto doreturn;
}
+ if (strcmp(ttype, "7") == 0) {
+ /* unlogged table */
+ goto doreturn;
+ }
}
if (mapi_error(mid))
goto bailout;
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -109,15 +109,15 @@ SQLhelp sqlhelp1[] = {
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/transactions/"},
{"COPY BINARY",
"Append binary representations into a table",
- "COPY [( BIG | LITTLE | NATIVE) ENDIAN] BINARY INTO qname
[column_list] FROM string [',' ...] [ON { CLIENT | SERVER }] [NO CONSTRAINT]",
+ "COPY [( BIG | LITTLE | NATIVE) ENDIAN] BINARY INTO qname
[column_list] FROM string [',' ...] [ON { CLIENT | SERVER }]",
"qname,column_list",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-loading/binary-loading/"},
{"COPY INTO",
"Parse a csv file into a table or write a query result to a csv file",
"COPY [nrofrecords] INTO qname [column_list] FROM string [',' ...]
[headerlist] [ON { CLIENT | SERVER }] [ separators]\n"
- " [NULL [AS] string] [LOCKED] [BEST EFFORT] [NO CONSTRAINT] [FWF '('
integer [',' ...] ')'\n"
+ " [NULL [AS] string] [BEST EFFORT] [FWF '(' integer [',' ...] ')'\n"
"COPY [nrofrecords] INTO qname [column_list] FROM STDIN [headerlist] [
separators]\n"
- " [NULL [AS] string] [LOCKED] [BEST EFFORT] [NO CONSTRAINT]\n"
+ " [NULL [AS] string] [BEST EFFORT]\n"
"COPY query_expression INTO [STDOUT | string [ON { CLIENT | SERVER }]]
[separators] [NULL [AS] string]",
"nrofrecords,qname,column_list,headerlist,separators",
"See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-loading/copy-from/"},
@@ -187,6 +187,13 @@ SQLhelp sqlhelp1[] = {
"CREATE REMOTE TABLE [ IF NOT EXISTS ] qname ON string [WITH [USER
'username'] [[ENCRYPTED] PASSWORD 'password']]",
NULL,
"remote name should match
mapi:monetdb://host:port/database[/schema[/table]]"},
+ {"CREATE UNLOGGED TABLE",
+ "Create a new unlogged table",
+ "CREATE UNLOGGED TABLE [ IF NOT EXISTS ] qname table_source [STORAGE
ident string]\n"
+ "CREATE UNLOGGED TABLE [ IF NOT EXISTS ] qname FROM LOADER
function_ref\n"
+ "CREATE UNLOGGED TABLE [ IF NOT EXISTS ] qname table_source
[on_commit]",
+ "table_source,on_commit,function_ref",
+ "See also
https://www.monetdb.org/documentation/user-guide/sql-manual/data-definition/table-definition/"},
{"CREATE REPLICA TABLE",
"",
"CREATE REPLICA TABLE [ IF NOT EXISTS ] qname table_source",
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -41,13 +41,15 @@ MNDBGetInfo(ODBCDbc *dbc,
char buf[64];
const char *sValue = NULL; /* iff non-NULL, return string value */
int len = sizeof(SQLUINTEGER); /* most common size to return */
+ MapiHdl hdl = NULL;
/* For some info types an active connection is needed */
if (!dbc->Connected &&
(InfoType == SQL_DATA_SOURCE_NAME ||
InfoType == SQL_SERVER_NAME ||
InfoType == SQL_DATABASE_NAME ||
- InfoType == SQL_USER_NAME)) {
+ InfoType == SQL_USER_NAME ||
+ InfoType == SQL_KEYWORDS)) {
/* Connection does not exist */
addDbcError(dbc, "08003", NULL, 0);
return SQL_ERROR;
@@ -658,39 +660,13 @@ MNDBGetInfo(ODBCDbc *dbc,
* SQL_CA2_SIMULATE_UNIQUE */
break;
case SQL_KEYWORDS:
- /* Returns the MonetDB keywords which are not listed
- * as ODBC keyword in the #define SQL_ODBC_KEYWORDS in
- * sql.h, collated from
- * sql_scan.c:scanner_init_keywords with values
- * removed that are in
- * sql_parser.y:non_reserved_word */
- sValue = "ADD,ADMIN,AFTER,AGGREGATE,ALL,ALTER,ALWAYS,AND,ANY,"
- "ASYMMETRIC,ATOMIC,AUTO_INCREMENT,BEFORE,BEST,BIGINT,"
- "BIGSERIAL,BINARY,BLOB,CALL,CHAIN,CLOB,COMMITTED,COPY,"
- "CUME_DIST,CURRENT_ROLE,DELIMITERS,DENSE_RANK,DO,"
- "EACH,EFFORT,ELSEIF,ENCRYPTED,EVERY,EXCLUDE,FOLLOWING,"
- "FUNCTION,FWF,GENERATED,GEOMETRYCOLLECTION,"
- "GEOMETRYCOLLECTIONM,GEOMETRYCOLLECTIONZ,"
- "GEOMETRYCOLLECTIONZM,HUGEINT,IF,ILIKE,"
- "LATERAL,LIMIT,LINESTRING,LINESTRINGM,"
- "LINESTRINGZ,LINESTRINGZM,LOADER,LOCALTIME,"
- "LOCALTIMESTAMP,LOCKED,MEDIUMINT,MERGE,"
- "MULTILINESTRING,MULTILINESTRINGM,MULTILINESTRINGZ,"
- "MULTILINESTRINGZM,MULTIPOINT,MULTIPOINTM,MULTIPOINTZ,"
- "MULTIPOINTZM,MULTIPOLYGON,MULTIPOLYGONM,"
- "MULTIPOLYGONZ,MULTIPOLYGONZM,NEW,NOCYCLE,NOMAXVALUE,"
- "NOMINVALUE,NOW,OFFSET,OLD,ORDERED,OTHERS,OVER,"
- "PARTITION,PERCENT_RANK,POINT,POINTM,POINTZ,POINTZM,"
- "POLYGON,POLYGONM,POLYGONZ,POLYGONZM,PRECEDING,"
- "RANGE,RANK,RECORDS,REFERENCING,REMOTE,"
- "RENAME,REPEATABLE,REPLICA,RESTART,RETURN,RETURNS,"
- "ROW_NUMBER,SAMPLE,SAVEPOINT,SEQUENCE,SERIAL,"
- "SERIALIZABLE,SIMPLE,SPLIT_PART,STDIN,STDOUT,STREAM,"
- "STRING,SYMMETRIC,TIES,TINYINT,TRIGGER,TRUNCATE,"
- "UNBOUNDED,UNCOMMITTED,UNENCRYPTED,WHILE,WINDOW,XMLAGG,"
- "XMLATTRIBUTES,XMLCOMMENT,XMLCONCAT,XMLDOCUMENT,"
- "XMLELEMENT,XMLFOREST,XMLNAMESPACES,XMLPARSE,XMLPI,"
- "XMLQUERY,XMLSCHEMA,XMLTEXT,XMLVALIDATE";
+ /* Returns the MonetDB keywords, i.e. a dump of
+ * sys.keywords */
+ if ((hdl = mapi_query(dbc->mid, "WITH x(k) AS (SELECT keyword
FROM sys.keywords ORDER BY keyword) SELECT group_concat(k, ',') FROM x")) !=
NULL && mapi_fetch_row(hdl)) {
+ sValue = mapi_fetch_field(hdl, 0);
+ } else {
+ addDbcError(dbc, mapi_error(dbc->mid) == MTIMEOUT ?
"HYT01" : "HY000", NULL, 0);
+ }
break;
case SQL_LIKE_ESCAPE_CLAUSE:
sValue = "Y"; /* "N" */
@@ -1194,6 +1170,9 @@ MNDBGetInfo(ODBCDbc *dbc,
*StringLengthPtr = len;
}
+ if (hdl)
+ mapi_close_handle(hdl);
+
return dbc->Error ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS;
}
diff --git a/clients/odbc/samples/testgetinfo.c
b/clients/odbc/samples/testgetinfo.c
--- a/clients/odbc/samples/testgetinfo.c
+++ b/clients/odbc/samples/testgetinfo.c
@@ -644,7 +644,49 @@ const struct {
.info = SQL_KEYWORDS,
.name = "SQL_KEYWORDS",
.type = STRING,
- .str =
"ADD,ADMIN,AFTER,AGGREGATE,ALL,ALTER,ALWAYS,AND,ANY,ASYMMETRIC,ATOMIC,AUTO_INCREMENT,BEFORE,BEST,BIGINT,BIGSERIAL,BINARY,BLOB,CALL,CHAIN,CLOB,COMMITTED,COPY,CUME_DIST,CURRENT_ROLE,DELIMITERS,DENSE_RANK,DO,EACH,EFFORT,ELSEIF,ENCRYPTED,EVERY,EXCLUDE,FOLLOWING,FUNCTION,FWF,GENERATED,GEOMETRYCOLLECTION,GEOMETRYCOLLECTIONM,GEOMETRYCOLLECTIONZ,GEOMETRYCOLLECTIONZM,HUGEINT,IF,ILIKE,LATERAL,LIMIT,LINESTRING,LINESTRINGM,LINESTRINGZ,LINESTRINGZM,LOADER,LOCALTIME,LOCALTIMESTAMP,LOCKED,MEDIUMINT,MERGE,MULTILINESTRING,MULTILINESTRINGM,MULTILINESTRINGZ,MULTILINESTRINGZM,MULTIPOINT,MULTIPOINTM,MULTIPOINTZ,MULTIPOINTZM,MULTIPOLYGON,MULTIPOLYGONM,MULTIPOLYGONZ,MULTIPOLYGONZM,NEW,NOCYCLE,NOMAXVALUE,NOMINVALUE,NOW,OFFSET,OLD,ORDERED,OTHERS,OVER,PARTITION,PERCENT_RANK,POINT,POINTM,POINTZ,POINTZM,POLYGON,POLYGONM,POLYGONZ,POLYGONZM,PRECEDING,RANGE,RANK,RECORDS,REFERENCING,REMOTE,RENAME,REPEATABLE,REPLICA,RESTART,RETURN,RETURNS,ROW_NUMBER,SAMPLE,SAVEPOINT,SEQUENCE,SERIAL,SERIALIZABLE,SIMPLE,SPLI
T_PART,STDIN,STDOUT,STREAM,STRING,SYMMETRIC,TIES,TINYINT,TRIGGER,TRUNCATE,UNBOUNDED,UNCOMMITTED,UNENCRYPTED,WHILE,WINDOW,XMLAGG,XMLATTRIBUTES,XMLCOMMENT,XMLCONCAT,XMLDOCUMENT,XMLELEMENT,XMLFOREST,XMLNAMESPACES,XMLPARSE,XMLPI,XMLQUERY,XMLSCHEMA,XMLTEXT,XMLVALIDATE",
+ .str = "ADD,ADMIN,AFTER,AGGREGATE,ALL,ALTER,ALWAYS,ANALYZE,AND,"
+ "ANY,ASC,ASYMMETRIC,AT,ATOMIC,AUTHORIZATION,"
+ "AUTO_INCREMENT,BEFORE,BEGIN,BEST,BETWEEN,BIG,BIGINT,"
+ "BIGSERIAL,BINARY,BLOB,BY,CACHE,CALL,CASCADE,CASE,CAST,"
+ "CENTURY,CHAIN,CHAR,CHARACTER,CHECK,CLIENT,CLOB,"
+ "COALESCE,COLUMN,COMMENT,COMMIT,COMMITTED,CONSTRAINT,"
+ "CONTINUE,CONVERT,COPY,CORRESPONDING,CREATE,CROSS,CUBE,"
+ "CURRENT,CURRENT_DATE,CURRENT_ROLE,CURRENT_SCHEMA,"
+ "CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_TIMEZONE,"
+ "CURRENT_USER,CYCLE,DATA,DATE,DAY,DEALLOCATE,DEBUG,DEC,"
+ "DECADE,DECIMAL,DECLARE,DEFAULT,DELETE,DELIMITERS,DESC,"
+ "DIAGNOSTICS,DISTINCT,DO,DOUBLE,DOW,DOY,DROP,EACH,"
+ "EFFORT,ELSE,ELSEIF,ENCRYPTED,END,ENDIAN,EPOCH,ESCAPE,"
+ "EVERY,EXCEPT,EXCLUDE,EXEC,EXECUTE,EXISTS,EXPLAIN,"
+ "EXTERNAL,EXTRACT,FALSE,FIRST,FLOAT,FOLLOWING,FOR,"
+ "FOREIGN,FROM,FULL,FUNCTION,FWF,GENERATED,GLOBAL,GRANT,"
+ "GROUP,GROUPING,GROUPS,HAVING,HOUR,HUGEINT,IDENTITY,IF,"
+ "ILIKE,IMPRINTS,IN,INCREMENT,INDEX,INNER,INSERT,INT,"
+ "INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,JOIN,KEY,"
+ "LANGUAGE,LARGE,LAST,LATERAL,LEFT,LEVEL,LIKE,LIMIT,"
+ "LITTLE,LOADER,LOCAL,LOCALTIME,LOCALTIMESTAMP,MATCH,"
+ "MATCHED,MAXVALUE,MEDIUMINT,MERGE,MINUTE,MINVALUE,"
+ "MONTH,NAME,NATIVE,NATURAL,NEW,NEXT,NO,NOT,NOW,NULL,"
+ "NULLIF,NULLS,NUMERIC,OBJECT,OF,OFFSET,OLD,ON,ONLY,"
+ "OPTION,OPTIONS,OR,ORDER,ORDERED,OTHERS,OUTER,OVER,"
+ "PARTIAL,PARTITION,PASSWORD,PATH,PLAN,POSITION,"
+ "PRECEDING,PRECISION,PREP,PREPARE,PRESERVE,PRIMARY,"
+ "PRIVILEGES,PROCEDURE,PUBLIC,QUARTER,RANGE,READ,REAL,"
+ "RECORDS,REFERENCES,REFERENCING,RELEASE,REMOTE,RENAME,"
+ "REPEATABLE,REPLACE,REPLICA,RESTART,RESTRICT,RETURN,"
+ "RETURNS,REVOKE,RIGHT,ROLE,ROLLBACK,ROLLUP,ROW,ROWS,"
+ "SAMPLE,SAVEPOINT,SCHEMA,SECOND,SEED,SELECT,SEQUENCE,"
+ "SERIAL,SERIALIZABLE,SERVER,SESSION,SESSION_USER,SET,"
+ "SETS,SIMPLE,SIZE,SMALLINT,SOME,SPLIT_PART,START,"
+ "STATEMENT,STDIN,STDOUT,STORAGE,STRING,SUBSTRING,"
+ "SYMMETRIC,TABLE,TEMP,TEMPORARY,TEXT,THEN,TIES,TIME,"
+ "TIMESTAMP,TINYINT,TO,TRACE,TRANSACTION,TRIGGER,TRUE,"
+ "TRUNCATE,TYPE,UNBOUNDED,UNCOMMITTED,UNENCRYPTED,UNION,"
+ "UNIQUE,UPDATE,USER,USING,VALUE,VALUES,VARCHAR,VARYING,"
+ "VIEW,WEEK,WHEN,WHERE,WHILE,WINDOW,WITH,WORK,WRITE,"
+ "XMLAGG,XMLATTRIBUTES,XMLCOMMENT,XMLCONCAT,XMLDOCUMENT,"
+ "XMLELEMENT,XMLFOREST,XMLNAMESPACES,XMLPARSE,XMLPI,"
+ "XMLQUERY,XMLSCHEMA,XMLTEXT,XMLVALIDATE,YEAR,ZONE",
},
{
.info = SQL_LIKE_ESCAPE_CLAUSE,
@@ -1089,7 +1131,7 @@ main(int argc, char **argv)
char *user = "monetdb";
char *pass = "monetdb";
SQLRETURN ret;
- char str[2048];
+ char str[4096];
SQLSMALLINT resultlen;
SQLUSMALLINT s;
SQLUINTEGER i;
diff --git a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -17,7 +17,8 @@ X-Python-Version: >= 2.6
Package: libmonetdb25
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libmonetdb-stream25 (= ${source:Version})
Conflicts: libmonetdb5-server-geom (<< ${source:Version})
Description: MonetDB core library
MonetDB is a database management system that is developed from a
@@ -34,7 +35,8 @@ Description: MonetDB core library
Package: libmonetdb-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
- libmonetdb25, libmonetdb-stream-dev
+ libmonetdb25 (= ${source:Version}),
+ libmonetdb-stream-dev (= ${source:Version})
Description: MonetDB development files
MonetDB is a database management system that is developed from a
main-memory perspective with use of a fully decomposed storage model,
@@ -71,7 +73,8 @@ Description: MonetDB stream library deve
Package: libmonetdb-client25
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libmonetdb-stream25 (= ${source:Version})
Description: MonetDB client/server interface library
MonetDB is a database management system that is developed from a
main-memory perspective with use of a fully decomposed storage model,
@@ -96,7 +99,9 @@ Description: MonetDB client/server inter
Package: monetdb-client
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libmonetdb-client25 (= ${source:Version}),
+ libmonetdb-stream25 (= ${source:Version})
Recommends: monetdb5-sql (= ${source:Version}),
monetdb5-server (= ${source:Version})
Description: MonetDB database client
@@ -112,7 +117,8 @@ Description: MonetDB database client
Package: libmonetdb-client-odbc
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, odbcinst
+Depends: ${shlibs:Depends}, ${misc:Depends}, odbcinst,
+ libmonetdb-client25 (= ${source:Version})
Description: MonetDB ODBC driver
MonetDB is a database management system that is developed from a
main-memory perspective with use of a fully decomposed storage model,
@@ -124,6 +130,9 @@ Description: MonetDB ODBC driver
Package: monetdb-client-testing
Architecture: any
Depends: ${shlibs:Depends}, libmonetdb-client-odbc (= ${source:Version}),
+ libmonetdb-client25 (= ${source:Version}),
+ libmonetdb-stream25 (= ${source:Version}),
+ libmonetdb25 (= ${source:Version}),
monetdb5-server (= ${source:Version}),
libdbd-monetdb-perl (>= 1.0),
php-monetdb (>= 1.0),
@@ -143,6 +152,8 @@ Package: libmonetdb5-server-geom
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
+ libmonetdb-stream25 (= ${source:Version}),
+ libmonetdb25 (= ${source:Version}),
monetdb5-server (= ${source:Version})
Description: MonetDB5 SQL GIS support module
MonetDB is a database management system that is developed from a
@@ -157,6 +168,7 @@ Package: libmonetdb5-server-cfitsio
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
+ libmonetdb25 (= ${source:Version}),
monetdb5-server (= ${source:Version})
Description: MonetDB5 add on module for FITS files
MonetDB is a database management system that is developed from a
@@ -169,7 +181,10 @@ Description: MonetDB5 add on module for
Package: monetdb5-server
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser,
+ libmonetdb-client25 (= ${source:Version}),
+ libmonetdb-stream25 (= ${source:Version}),
+ libmonetdb25 (= ${source:Version}),
Recommends: monetdb5-sql (= ${source:Version})
Suggests: monetdb-client (= ${source:Version})
Conflicts: monetdb5-server-hugeint (<< 11.38.0),
@@ -202,6 +217,8 @@ Description: MonetDB database server ver
Package: monetdb5-sql
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
+ libmonetdb-client25 (= ${source:Version}),
+ libmonetdb-stream25 (= ${source:Version}),
monetdb5-server (= ${source:Version})
Conflicts: monetdb5-sql-hugeint (<< 11.38.0)
Replaces: monetdb5-sql-hugeint (<< 11.38.0)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]