Changeset: 597a8c9ca507 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=597a8c9ca507 Added Files: gdk/gdk_cand.c sql/test/BugTracker-2019/Tests/copy-into-unicode-quote.Bug-6716.sql sql/test/BugTracker-2019/Tests/copy-into-unicode-quote.Bug-6716.stable.err sql/test/BugTracker-2019/Tests/copy-into-unicode-quote.Bug-6716.stable.out sql/test/BugTracker-2019/Tests/disallow_duplicate_column_aliases.Bug-6723.sql sql/test/BugTracker-2019/Tests/disallow_duplicate_column_aliases.Bug-6723.stable.err sql/test/BugTracker-2019/Tests/disallow_duplicate_column_aliases.Bug-6723.stable.out sql/test/BugTracker-2019/Tests/insert-into-select.Bug-6718.sql sql/test/BugTracker-2019/Tests/insert-into-select.Bug-6718.stable.err sql/test/BugTracker-2019/Tests/insert-into-select.Bug-6718.stable.out sql/test/BugTracker-2019/Tests/prepare-non-existing-function.Bug-6725.sql sql/test/BugTracker-2019/Tests/prepare-non-existing-function.Bug-6725.stable.err sql/test/BugTracker-2019/Tests/prepare-non-existing-function.Bug-6725.stable.out sql/test/BugTracker-2019/Tests/prepare-types.Bug-6724.sql sql/test/BugTracker-2019/Tests/prepare-types.Bug-6724.stable.err sql/test/BugTracker-2019/Tests/prepare-types.Bug-6724.stable.out sql/test/BugTracker-2019/Tests/select_window_function_and_asterisk.Bug-6722.sql sql/test/BugTracker-2019/Tests/select_window_function_and_asterisk.Bug-6722.stable.err sql/test/BugTracker-2019/Tests/select_window_function_and_asterisk.Bug-6722.stable.out Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/mhelp.c embedded/CMakeLists.txt gdk/CMakeLists.txt gdk/Makefile.ag gdk/gdk.h gdk/gdk_batop.c gdk/gdk_join.c gdk/gdk_logger.c gdk/gdk_select.c gdk/gdk_unique.c monetdb5/ChangeLog monetdb5/mal/mal_import.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/bat5.h monetdb5/modules/kernel/bat5.mal monetdb5/modules/mal/Tests/inspect05.stable.out monetdb5/modules/mal/Tests/inspect05.stable.out.int128 monetdb5/modules/mal/pcre.c monetdb5/modules/mal/wlc.c monetdb5/optimizer/opt_candidates.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_support.c sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out sql/backends/monet5/sql.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/vaults/bam/Tests/bam_lib.stable.out sql/backends/monet5/vaults/bam/Tests/query2.1.stable.out sql/backends/monet5/vaults/bam/Tests/query2.10.stable.out sql/backends/monet5/vaults/bam/Tests/query2.11.stable.out sql/backends/monet5/vaults/bam/Tests/query2.2.stable.out sql/backends/monet5/vaults/bam/Tests/query2.2.stable.out.int128 sql/backends/monet5/vaults/bam/Tests/query2.8.stable.out sql/backends/monet5/vaults/bam/Tests/sam_export.stable.out sql/backends/monet5/wlr.c sql/include/sql_catalog.h sql/jdbc/tests/Tests/Test_PSmetadata.stable.out sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_propagate.c sql/server/rel_psm.c sql/server/rel_select.c sql/server/rel_updates.c sql/server/sql_atom.c sql/server/sql_qc.c sql/server/sql_qc.h sql/storage/bat/bat_storage.c sql/storage/bat/bat_storage.h sql/storage/store.c sql/test/BugTracker-2008/Tests/auto_coersion_bug.SF-2075157.stable.out sql/test/BugTracker-2010/Tests/ORDER_BY_over_UNION_EXCEPT_INTERSECT.Bug-2606.stable.out sql/test/BugTracker-2010/Tests/prepare_stmt.Bug-2533.Bug-2534.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.err.Windows sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.stable.out sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.out sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out sql/test/BugTracker-2017/Tests/caching_stats_bug.6374.stable.out sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out.single sql/test/BugTracker-2017/Tests/sqlsmith01.stable.out sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out sql/test/BugTracker-2018/Tests/prepared-statement-with-udf.Bug-6650.stable.out sql/test/BugTracker-2019/Tests/All sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out sql/test/BugTracker-2019/Tests/merge-statement-aliases.Bug-6715.sql sql/test/BugTracker-2019/Tests/merge-statement-aliases.Bug-6715.stable.out sql/test/BugTracker-2019/Tests/prepared-merge-statement.Bug-6706.sql sql/test/BugTracker-2019/Tests/prepared-merge-statement.Bug-6706.stable.err sql/test/BugTracker-2019/Tests/prepared-merge-statement.Bug-6706.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-0join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-0join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-view.stable.out sql/test/Tests/order_by_complex_exp.stable.out sql/test/VOC/Tests/VOC.stable.out sql/test/analytics/Tests/analytics09.stable.err sql/test/analytics/Tests/analytics09.stable.out sql/test/pg_regress/Tests/alter_table.stable.out sql/test/pg_regress/Tests/random.stable.out sql/test/pg_regress/Tests/select_views.stable.out sql/test/pg_regress/Tests/timestamp.stable.out sql/test/pg_regress/Tests/timestamptz.stable.out sql/test/sys-schema/Tests/bam_tables_checks.stable.out sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out sql/test/sys-schema/Tests/check_MaxStrLength_violations.stable.out sql/test/sys-schema/Tests/check_Not_Nullable_columns.sql sql/test/sys-schema/Tests/check_Not_Nullable_columns.stable.out sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.stable.out Branch: cmake-monetdblite Log Message:
Merge with cmake-fun. diffs (truncated from 8427 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -612,6 +612,7 @@ stdout of test 'MAL-signatures` in direc [ "bat", "delete", "command bat.delete(b:bat[:any_1]):bat[:any_1] ", "BKCdelete_all;", "Delete all entries." ] [ "bat", "delete", "command bat.delete(b:bat[:any_1], d:bat[:oid]):bat[:any_1] ", "BKCdelete_multi;", "Delete multiple BUN, shifting BUNs up" ] [ "bat", "densebat", "command bat.densebat(sz:lng):bat[:oid] ", "BKCdensebat;", "Creates a new [void,void] BAT of size 'sz'." ] +[ "bat", "diffcand", "command bat.diffcand(a:bat[:oid], b:bat[:oid]):bat[:oid] ", "BKCdiffcand;", "Calculate difference of two candidate lists" ] [ "bat", "getAccess", "command bat.getAccess(b:bat[:any_1]):str ", "BKCgetAccess;", "Return the access mode attached to this BAT as a character." ] [ "bat", "getCapacity", "command bat.getCapacity(b:bat[:any_1]):lng ", "BKCgetCapacity;", "Returns the current allocation size (in max number of elements) of a BAT." ] [ "bat", "getColumnType", "command bat.getColumnType(b:bat[:any_1]):str ", "BKCgetColumnType;", "Returns the type of the tail column of a BAT, as an integer type number." ] 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 @@ -716,6 +716,7 @@ stdout of test 'MAL-signatures` in direc [ "bat", "delete", "command bat.delete(b:bat[:any_1]):bat[:any_1] ", "BKCdelete_all;", "Delete all entries." ] [ "bat", "delete", "command bat.delete(b:bat[:any_1], d:bat[:oid]):bat[:any_1] ", "BKCdelete_multi;", "Delete multiple BUN, shifting BUNs up" ] [ "bat", "densebat", "command bat.densebat(sz:lng):bat[:oid] ", "BKCdensebat;", "Creates a new [void,void] BAT of size 'sz'." ] +[ "bat", "diffcand", "command bat.diffcand(a:bat[:oid], b:bat[:oid]):bat[:oid] ", "BKCdiffcand;", "Calculate difference of two candidate lists" ] [ "bat", "getAccess", "command bat.getAccess(b:bat[:any_1]):str ", "BKCgetAccess;", "Return the access mode attached to this BAT as a character." ] [ "bat", "getCapacity", "command bat.getCapacity(b:bat[:any_1]):lng ", "BKCgetCapacity;", "Returns the current allocation size (in max number of elements) of a BAT." ] [ "bat", "getColumnType", "command bat.getColumnType(b:bat[:any_1]):str ", "BKCgetColumnType;", "Returns the type of the tail column of a BAT, as an integer type number." ] 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 @@ -106,6 +106,7 @@ dbl BATcalcvariance_population(dbl *avgp dbl BATcalcvariance_sample(dbl *avgp, BAT *b); BAT *BATcalcxor(BAT *b1, BAT *b2, BAT *s); BAT *BATcalcxorcst(BAT *b, const ValRecord *v, BAT *s); +bool BATcandcontains(BAT *s, oid o); gdk_return BATclear(BAT *b, bool force); void BATcommit(BAT *b); BAT *BATconstant(oid hseq, int tt, const void *val, BUN cnt, role_t role); @@ -114,6 +115,7 @@ BUN BATcount_no_nil(BAT *b); gdk_return BATdel(BAT *b, BAT *d) __attribute__((__warn_unused_result__)); BAT *BATdense(oid hseq, oid tseq, BUN cnt) __attribute__((__warn_unused_result__)); BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool not_in, BUN estimate); +BAT *BATdiffcand(BAT *a, BAT *b); gdk_return BATextend(BAT *b, BUN newcap) __attribute__((__warn_unused_result__)); void BATfakeCommit(BAT *b); gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, BAT *grps, BUN n, bool asc, bool nilslast, bool distinct) __attribute__((__warn_unused_result__)); @@ -804,6 +806,7 @@ str BKCdelete(bat *r, const bat *bid, co str BKCdelete_all(bat *r, const bat *bid); str BKCdelete_multi(bat *r, const bat *bid, const bat *sid); str BKCdensebat(bat *ret, const lng *size); +str BKCdiffcand(bat *ret, const bat *aid, const bat *bid); str BKCgetAccess(str *res, const bat *bid); str BKCgetBBPname(str *ret, const bat *bid); str BKCgetCapacity(lng *res, const bat *bid); @@ -2094,6 +2097,7 @@ str deltaRef; str dense_rankRef; malType destinationType(MalBlkPtr mb, InstrPtr p); str diffRef; +str diffcandRef; str differenceRef; str disconnectRef; str divRef; diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c --- a/clients/mapiclient/mhelp.c +++ b/clients/mapiclient/mhelp.c @@ -59,10 +59,10 @@ SQLhelp sqlhelp1[] = { "See also https://www.monetdb.org/Documentation/SQLreference/Alter"}, {"ALTER MERGE TABLE", "", - "ALTER TABLE [ IF EXISTS ] qname ADD TABLE qname [ AS PARTITION opt_partition_spec ]\n" + "ALTER TABLE [ IF EXISTS ] qname ADD TABLE qname [ AS PARTITION partition_spec ]\n" "ALTER TABLE [ IF EXISTS ] qname DROP TABLE qname [ RESTRICT | CASCADE ]\n" - "ALTER TABLE [ IF EXISTS ] qname SET TABLE qname AS PARTITION opt_partition_spec", - "qname,opt_partition_spec", + "ALTER TABLE [ IF EXISTS ] qname SET TABLE qname AS PARTITION partition_spec", + "qname,partition_spec", "See also https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/DataPartitioning"}, {"ALTER SCHEMA", "", @@ -182,8 +182,8 @@ SQLhelp sqlhelp1[] = { "See also https://www.monetdb.org/blog/monetdbpython-loader-functions"}, {"CREATE MERGE TABLE", "", - "CREATE MERGE TABLE [ IF NOT EXISTS ] qname table_source [ opt_partition_by ];", - "table_source,opt_partition_by", + "CREATE MERGE TABLE [ IF NOT EXISTS ] qname table_source [ partition_by ]", + "table_source,partition_by", "See also https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/DataPartitioning"}, {"CREATE REMOTE TABLE", "", @@ -192,7 +192,7 @@ SQLhelp sqlhelp1[] = { "remote name should match mapi:monetdb://host:port/database[/schema[/table]]"}, {"CREATE REPLICA TABLE", "", - "CREATE REPLICA TABLE [ IF NOT EXISTS ] qname table_source;", + "CREATE REPLICA TABLE [ IF NOT EXISTS ] qname table_source", NULL, "See also https://www.monetdb.org/Documentation/Cookbooks/SQLrecipes/TransactionReplication"}, {"CREATE ROLE", @@ -303,8 +303,8 @@ SQLhelp sqlhelp1[] = { NULL}, {"DELETE", "", - "[ WITH with_list ] DELETE FROM qname [ [AS] ident ] [ WHERE search_condition ]", - "with_list,search_condition", + "[ WITH cte_list ] DELETE FROM qname [ [AS] ident ] [ WHERE search_condition ]", + "cte_list,search_condition", NULL}, {"DROP AGGREGATE", "", @@ -384,8 +384,8 @@ SQLhelp sqlhelp1[] = { "See also https://www.monetdb.org/Documentation/SQLreference/Flowofcontrol"}, {"INSERT", "", - "[ WITH with_list ] INSERT INTO qname [ column_list ] [ { DEFAULT VALUES | VALUES row_values | query_expression } ]", - "with_list,column_list,row_values,query_expression", + "[ WITH cte_list ] INSERT INTO qname [ column_list ] [ { DEFAULT VALUES | VALUES row_values | query_expression } ]", + "cte_list,column_list,row_values,query_expression", "See also https://www.monetdb.org/Documentation/SQLreference/Updates"}, {"GRANT", "Define access privileges", @@ -395,9 +395,9 @@ SQLhelp sqlhelp1[] = { "See also https://www.monetdb.org/Documentation/SQLreference/Permissions"}, {"MERGE", "", - "[ WITH with_list ] MERGE INTO qname [ [AS] ident ] USING table_ref [ [AS] ident ] ON search_condition merge_list", - "with_list,table_ref,search_condition,merge_list", - NULL}, + "[ WITH cte_list ] MERGE INTO qname [ [AS] ident ] USING table_ref [ [AS] ident ] ON search_condition merge_list", + "cte_list,table_ref,search_condition,merge_list", + "See also: https://www.monetdb.org/blog/sql2003_merge_statements_now_supported"}, {"RELEASE SAVEPOINT", "", "RELEASE SAVEPOINT ident", @@ -426,7 +426,7 @@ SQLhelp sqlhelp1[] = { NULL}, {"SELECT", "", - "[ WITH with_list ]\n" + "[ WITH cte_list ]\n" "SELECT [ ALL | DISTINCT [ ON { expression [',' ...] } ] ]\n" "[ '*' | expression [ [ AS ] output_name ] [',' ...] ]\n" "[ FROM from_item [',' ...] ]\n" @@ -439,7 +439,7 @@ SQLhelp sqlhelp1[] = { "[ LIMIT { count | param } ]\n" "[ OFFSET { count | param } ]\n" "[ SAMPLE size [ SEED size ] ]", - "with_list,expression,window_definition", + "cte_list,expression,window_definition", "See also https://www.monetdb.org/Documentation/SQLreference/TableExpressions"}, {"SET", "Assign a value to a variable or column", @@ -512,8 +512,8 @@ SQLhelp sqlhelp1[] = { NULL}, {"UPDATE", "", - "[ WITH with_list ] UPDATE qname [ [AS] ident ] SET assignment_list [ WHERE search_condition ]", - "with_list,assignment_list,search_condition", + "[ WITH cte_list ] UPDATE qname [ [AS] ident ] SET assignment_list [ WHERE search_condition ]", + "cte_list,assignment_list,search_condition", NULL}, {"VALUES", "", @@ -674,16 +674,16 @@ SQLhelp sqlhelp2[] = { "MATCH { FULL | PARTIAL | SIMPLE }", NULL, NULL}, + {"merge_list", + NULL, + "merge_clause [ merge_clause ]", + "merge_clause", + NULL}, {"merge_clause", NULL, - "{ WHEN MATCHED [ AND search_condition ] THEN { UPDATE SET assignment_list | DELETE } } |\n" - "{ WHEN NOT MATCHED [ AND search_condition ] THEN INSERT [ column_list ] [ { DEFAULT VALUES | VALUES row_values } ] }", - "search_condition,assignment_list,column_list,row_values", - NULL}, - {"merge_list", - NULL, - "merge_clause [ ... ]", - "merge_clause", + "{ WHEN NOT MATCHED THEN INSERT [ column_list ] [ { VALUES row_values | DEFAULT VALUES } ]\n" + "| WHEN MATCHED THEN { UPDATE SET assignment_list | DELETE } }", + "column_list,row_values,assignment_list", NULL}, {"nrofrecords", "", @@ -695,18 +695,18 @@ SQLhelp sqlhelp2[] = { "ON COMMIT { DELETE ROWS | PRESERVE ROWS | DROP }", NULL, NULL}, - {"opt_partition_by", + {"partition_by", NULL, "PARTITION BY { RANGE | VALUES } { ON '(' ident ')' | USING '(' query_expression ')' }", "query_expression", - NULL}, - {"opt_partition_spec", + "See also: https://www.monetdb.org/blog/updatable-merge-tables"}, + {"partition_spec", NULL, - "IN '(' partition_list ')' [ WITH NULL VALUES ]\n" - "FROM partition_range_from TO partition_range_to [ WITH NULL VALUES ]\n" - "FOR NULL VALUES", + "{ IN '(' partition_list ')' [ WITH NULL VALUES ]\n" + "| FROM partition_range_from TO partition_range_to [ WITH NULL VALUES ]\n" + "| FOR NULL VALUES }", "partition_list,partition_range_from,partition_range_to", - NULL}, + "See also: https://www.monetdb.org/blog/updatable-merge-tables"}, {"param", NULL, "ident data_type", @@ -738,10 +738,27 @@ SQLhelp sqlhelp2[] = { " declare | set_statement | control_statement | select_single_row } ';'", "transaction_statement,update_statement,grant,revoke,declare,set_statement,control_statement,select_single_row", NULL}, + {"select_single_row", + NULL, + "SELECT [ ALL | DISTINCT ] column_exp_commalist INTO select_target_list [ from_clause ] [ window_clause ] [ where_clause ] [ group_by_clause ] [ having_clause ]", + "column_exp_commalist,select_target_list,from_clause,window_clause,where_clause,group_by_clause,having_clause", + NULL}, {"query_expression", NULL, - "with_query | select_no_parens_orderby", + "select_no_parens [ order_by_clause ] [ limit_clause ] [ offset_clause ] [ sample_clause ]", + "select_no_parens,order_by_clause,limit_clause,offset_clause,sample_clause", + NULL}, + {"select_no_parens", NULL, + "{ SELECT [ ALL | DISTINCT ] column_exp_commalist [ from_clause ] [ window_clause ] [ where_clause ] [ group_by_clause ] [ having_clause ]\n" + "| select_no_parens { UNION | EXCEPT | INTERSECT } [ ALL | DISTINCT ] [ corresponding ] select_no_parens\n" + "| '(' select_no_parens ')' }", + "column_exp_commalist,from_clause,window_clause,where_clause,group_by_clause,having_clause,corresponding", + NULL}, + {"corresponding", + NULL, + "{ CORRESPONDING | CORRESPONDING BY '(' column_ref_commalist ')' }", + "column_ref_commalist", NULL}, {"qname", NULL, @@ -896,9 +913,9 @@ SQLhelp sqlhelp2[] = { " [ EXCLUDING { CURRENT ROW | GROUP | TIES | NO OTHERS } ] ]", "window_bound,window_frame_start", NULL}, - {"with_list", + {"cte_list", NULL, - "ident [ column_list ] AS query_expression [ ',' with_list ] ...", + "ident [ column_list ] AS query_expression [ ',' cte_list ] ...", "column_list,query_expression", NULL}, {NULL, NULL, NULL, NULL, NULL} /* End of list marker */ diff --git a/embedded/CMakeLists.txt b/embedded/CMakeLists.txt --- a/embedded/CMakeLists.txt +++ b/embedded/CMakeLists.txt @@ -101,6 +101,7 @@ set(MONETDBLITE_TRANSLATION_UNITS ../gdk/gdk_batop.c ../gdk/gdk_bbp.c ../gdk/gdk_calc.c + ../gdk/gdk_cand.c ../gdk/gdk_cross.c ../gdk/gdk_delta.c ../gdk/gdk_firstn.c diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt --- a/gdk/CMakeLists.txt +++ b/gdk/CMakeLists.txt @@ -18,7 +18,8 @@ add_library(gdk SHARED gdk_calc.c gdk_calc.h gdk_calc_compare.h gdk_calc_private.h gdk_ssort.c gdk_ssort_impl.h gdk_aggr.c - gdk.h gdk_cand.h gdk_batop.c + gdk.h gdk_batop.c + gdk_cand.h gdk_cand.c gdk_search.c gdk_hash.c gdk_hash.h gdk_tm.c gdk_orderidx.c gdk_align.c gdk_bbp.c gdk_bbp.h diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag --- a/gdk/Makefile.ag +++ b/gdk/Makefile.ag @@ -16,7 +16,8 @@ lib_gdk = { gdk_calc.c gdk_calc.h gdk_calc_compare.h gdk_calc_private.h \ gdk_ssort.c gdk_ssort_impl.h \ gdk_aggr.c \ - gdk.h gdk_cand.h gdk_batop.c \ + gdk.h gdk_batop.c \ + gdk_cand.h gdk_cand.c \ gdk_search.c gdk_hash.c gdk_hash.h gdk_tm.c \ gdk_orderidx.c \ gdk_align.c gdk_bbp.c gdk_bbp.h \ diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -2713,6 +2713,8 @@ gdk_export BAT *BATunique(BAT *b, BAT *s gdk_export BAT *BATmergecand(BAT *a, BAT *b); gdk_export BAT *BATintersectcand(BAT *a, BAT *b); +gdk_export BAT *BATdiffcand(BAT *a, BAT *b); +gdk_export bool BATcandcontains(BAT *s, oid o); gdk_export gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, BAT *grps, BUN n, bool asc, bool nilslast, bool distinct) __attribute__((__warn_unused_result__)); diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list