Changeset: b0b44412ff92 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b0b44412ff92 Modified Files: MonetDB.spec buildtools/selinux/monetdb.te clients/ChangeLog clients/mapiclient/stethoscope.c monetdb5/mal/mal_profiler.c sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 Branch: jitudf Log Message:
Merged with default branch. diffs (truncated from 39627 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -998,6 +998,7 @@ fi make %{?_smp_mflags} +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 cd buildtools/selinux for selinuxvariant in %{selinux_variants} do @@ -1006,6 +1007,7 @@ do make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean done cd - +%endif %install %make_install @@ -1022,6 +1024,7 @@ rm -f %{buildroot}%{_libdir}/monetdb5/*. # internal development stuff rm -f %{buildroot}%{_bindir}/Maddlog +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 for selinuxvariant in %{selinux_variants} do install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant} @@ -1029,6 +1032,7 @@ do %{buildroot}%{_datadir}/selinux/${selinuxvariant}/monetdb.pp done /usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux +%endif %post -p /sbin/ldconfig diff --git a/buildtools/selinux/monetdb.te b/buildtools/selinux/monetdb.te --- a/buildtools/selinux/monetdb.te +++ b/buildtools/selinux/monetdb.te @@ -14,7 +14,7 @@ init_daemon_domain(monetdbd_t, monetdbd_ # mserver5_exec_t which must then transition to the mserver5_t domain type mserver5_t; # mserver5 when run by monetdbd (monetdbd_t) type mserver5_exec_t; # /usr/bin/mserver5 -application_domain(mserver5_t, mserver5_exec_t) +init_daemon_domain(mserver5_t, mserver5_exec_t) # see https://selinuxproject.org/page/NB_Domain_and_Object_Transitions#Domain_Transition allow monetdbd_t mserver5_t:process transition; allow monetdbd_t mserver5_exec_t:file { execute open read getattr }; diff --git a/clients/ChangeLog b/clients/ChangeLog --- a/clients/ChangeLog +++ b/clients/ChangeLog @@ -1,3 +1,10 @@ # ChangeLog file for clients # This file is updated with Maddlog +* Mon Jul 17 2017 Panagiotis Koutsourakis <kutsu...@monetdbsolutions.com> +- Add a new pretty printing option to stethoscope + Running stethoscope with the flag -j will produce not pretty printed + output (one json object per line). Running with the -y flag will produce + pretty printed output. Running with neither, wiil produce the legacy, + line oriented format + diff --git a/clients/mapiclient/stethoscope.c b/clients/mapiclient/stethoscope.c --- a/clients/mapiclient/stethoscope.c +++ b/clients/mapiclient/stethoscope.c @@ -72,6 +72,7 @@ static char hostname[128]; static char *filename = NULL; static int beat = 0; static int json = 0; +static int stream_mode = 1; static Mapi dbh; static MapiHdl hdl = NULL; static FILE *trace = NULL; @@ -201,11 +202,12 @@ usageStethoscope(void) fprintf(stderr, " -h | --host=<hostname>\n"); fprintf(stderr, " -c | --convert=<old formated file>\n"); fprintf(stderr, " -j | --json\n"); + fprintf(stderr, " -y | --pretty (implies --json)\n"); fprintf(stderr, " -o | --output=<file>\n"); - fprintf(stderr, " -b | --beat=<delay> in milliseconds (default 50)\n"); - fprintf(stderr, " -D | --debug\n"); + fprintf(stderr, " -b | --beat=<delay> in milliseconds (default 50)\n"); + fprintf(stderr, " -D | --debug\n"); fprintf(stderr, " -? | --help\n"); - exit(-1); + exit(-1); } /* Any signal should be captured and turned into a graceful @@ -242,7 +244,7 @@ main(int argc, char **argv) int done = 0; EventRecord *ev = malloc(sizeof(EventRecord)); - static struct option long_options[12] = { + static struct option long_options[13] = { { "dbname", 1, 0, 'd' }, { "user", 1, 0, 'u' }, { "port", 1, 0, 'p' }, @@ -251,6 +253,7 @@ main(int argc, char **argv) { "help", 0, 0, '?' }, { "convert", 1, 0, 'c'}, { "json", 0, 0, 'j'}, + { "pretty", 0, 0, 'y'}, { "output", 1, 0, 'o' }, { "debug", 0, 0, 'D' }, { "beat", 1, 0, 'b' }, @@ -268,7 +271,7 @@ main(int argc, char **argv) while (1) { int option_index = 0; - int c = getopt_long(argc, argv, "d:u:p:P:h:?jo:Db:", + int c = getopt_long(argc, argv, "d:u:p:P:h:?jyo:Db:", long_options, &option_index); if (c == -1) break; @@ -310,6 +313,11 @@ main(int argc, char **argv) break; case 'j': json = 1; + stream_mode = 3; + break; + case 'y': + stream_mode = 1; + json = 1; break; case 'o': filename = strdup(optarg); @@ -326,6 +334,7 @@ main(int argc, char **argv) exit(-1); } } + if( conversion){ convertOldFormat(conversion); return 0; @@ -384,7 +393,7 @@ main(int argc, char **argv) fprintf(stderr,"-- %s\n",buf); doQ(buf); - snprintf(buf, BUFSIZ, " profiler.openstream(1);"); + snprintf(buf, BUFSIZ, " profiler.openstream(%d);", stream_mode); if( debug) fprintf(stderr,"--%s\n",buf); doQ(buf); diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c --- a/monetdb5/mal/mal_profiler.c +++ b/monetdb5/mal/mal_profiler.c @@ -314,7 +314,7 @@ This information can be used to determin GDKfree(tname); logadd("}%s%s", (j< pci->argc-1 && j != pci->retc -1?",":""), pret); } - logadd("] %s",prettify); // end marker for arguments + logadd("]%s",prettify); // end marker for arguments } } #endif @@ -434,7 +434,7 @@ profilerEvent(MalBlkPtr mb, MalStkPtr st if( sqlProfiling && !start ) cachedProfilerEvent(mb, stk, pci); - + if( eventstream) { renderProfilerEvent(mb, stk, pci, start, usrname); if ( start && pci->pc ==0) @@ -471,7 +471,7 @@ openProfilerStream(stream *fd, int mode) closeProfilerStream(); malProfileMode = -1; eventstream = fd; - prettify = (mode & PROFSINGLELINE) ? " ": "\n"; + prettify = (mode & PROFSINGLELINE) ? "": "\n"; /* show all in progress instructions for stethoscope startup */ if( (mode & PROFSHOWRUNNING) > 0){ diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 --- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 +++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 @@ -25,65 +25,9 @@ stdout of test 'upgrade` in directory 's Ready. -Running database upgrade commands: -set schema "sys"; -delete from sys._columns where table_id = (select id from sys._tables where name = 'connections' and schema_id = (select id from sys.schemas where name = 'sys')); -delete from sys._tables where name = 'connections' and schema_id = (select id from sys.schemas where name = 'sys'); -update sys.functions set side_effect = false where name in ('like', 'ilike') and schema_id = (select id from sys.schemas where name = 'sys'); -drop function sys.malfunctions; -create function sys.malfunctions() returns table("module" string, "function" string, "signature" string, "address" string, "comment" string) external name "manual"."functions"; -drop function sys.optimizer_stats(); -create function sys.optimizer_stats() returns table (optname string, count int, timing bigint) external name inspect.optimizer_stats; -insert into sys.systemfunctions (select id from sys.functions where name in ('malfunctions', 'optimizer_stats') and schema_id = (select id from sys.schemas where name = 'sys') and id not in (select function_id from sys.systemfunctions)); -create function profiler.getlimit() returns integer external name profiler.getlimit; -create procedure profiler.setlimit(lim integer) external name profiler.setlimit; -drop procedure profiler.setpoolsize; -drop procedure profiler.setstream; -insert into sys.systemfunctions (select id from sys.functions where name in ('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name = 'profiler') and id not in (select function_id from sys.systemfunctions)); -ALTER TABLE sys.keywords SET READ ONLY; -ALTER TABLE sys.table_types SET READ ONLY; -ALTER TABLE sys.dependency_types SET READ ONLY; -CREATE TABLE sys.function_types ( -function_type_id SMALLINT NOT NULL PRIMARY KEY, -function_type_name VARCHAR(30) NOT NULL UNIQUE); -INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES -(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4, 'Filter function'), (5, 'Function returning a table'), -(6, 'Analytic function'), (7, 'Loader function'); -ALTER TABLE sys.function_types SET READ ONLY; -CREATE TABLE sys.function_languages ( -language_id SMALLINT NOT NULL PRIMARY KEY, -language_name VARCHAR(20) NOT NULL UNIQUE); -INSERT INTO sys.function_languages (language_id, language_name) VALUES -(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'), (6, 'Python'), (7, 'Python Mapped'), (8, 'Python2'), (9, 'Python2 Mapped'), (10, 'Python3'), (11, 'Python3 Mapped'); -ALTER TABLE sys.function_languages SET READ ONLY; -CREATE TABLE sys.key_types ( -key_type_id SMALLINT NOT NULL PRIMARY KEY, -key_type_name VARCHAR(15) NOT NULL UNIQUE); -INSERT INTO sys.key_types (key_type_id, key_type_name) VALUES -(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign Key'); -ALTER TABLE sys.key_types SET READ ONLY; -CREATE TABLE sys.index_types ( -index_type_id SMALLINT NOT NULL PRIMARY KEY, -index_type_name VARCHAR(25) NOT NULL UNIQUE); -INSERT INTO sys.index_types (index_type_id, index_type_name) VALUES -(0, 'Hash'), (1, 'Join'), (2, 'Order preserving hash'), (3, 'No-index'), (4, 'Imprint'), (5, 'Ordered'); -ALTER TABLE sys.index_types SET READ ONLY; -CREATE TABLE sys.privilege_codes ( -privilege_code_id INT NOT NULL PRIMARY KEY, -privilege_code_name VARCHAR(30) NOT NULL UNIQUE); -INSERT INTO sys.privilege_codes (privilege_code_id, privilege_code_name) VALUES -(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8, 'DELETE'), (16, 'EXECUTE'), (32, 'GRANT'), -(3, 'SELECT,UPDATE'), (5, 'SELECT,INSERT'), (6, 'INSERT,UPDATE'), (7, 'SELECT,INSERT,UPDATE'), -(9, 'SELECT,DELETE'), (10, 'UPDATE,DELETE'), (11, 'SELECT,UPDATE,DELETE'), (12, 'INSERT,DELETE'), -(13, 'SELECT,INSERT,DELETE'), (14, 'INSERT,UPDATE,DELETE'), (15, 'SELECT,INSERT,UPDATE,DELETE'); -ALTER TABLE sys.privilege_codes SET READ ONLY; -update sys._tables set system = true where name in ('function_languages', 'function_types', 'index_types', 'key_types', 'privilege_codes') and schema_id = (select id from sys.schemas where name = 'sys'); -delete from sys.systemfunctions where function_id not in (select id from sys.functions); -set schema "sys"; - -# 15:26:18 > -# 15:26:18 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-21187" "--port=38946" -# 15:26:18 > +# 13:33:15 > +# 13:33:15 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-32047" "--port=35791" +# 13:33:15 > #select 1; % .L2 # table_name diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out --- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out +++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out @@ -25,65 +25,9 @@ stdout of test 'upgrade` in directory 's Ready. -Running database upgrade commands: -set schema "sys"; -delete from sys._columns where table_id = (select id from sys._tables where name = 'connections' and schema_id = (select id from sys.schemas where name = 'sys')); -delete from sys._tables where name = 'connections' and schema_id = (select id from sys.schemas where name = 'sys'); -update sys.functions set side_effect = false where name in ('like', 'ilike') and schema_id = (select id from sys.schemas where name = 'sys'); -drop function sys.malfunctions; -create function sys.malfunctions() returns table("module" string, "function" string, "signature" string, "address" string, "comment" string) external name "manual"."functions"; -drop function sys.optimizer_stats(); -create function sys.optimizer_stats() returns table (optname string, count int, timing bigint) external name inspect.optimizer_stats; -insert into sys.systemfunctions (select id from sys.functions where name in ('malfunctions', 'optimizer_stats') and schema_id = (select id from sys.schemas where name = 'sys') and id not in (select function_id from sys.systemfunctions)); -create function profiler.getlimit() returns integer external name profiler.getlimit; -create procedure profiler.setlimit(lim integer) external name profiler.setlimit; -drop procedure profiler.setpoolsize; -drop procedure profiler.setstream; -insert into sys.systemfunctions (select id from sys.functions where name in ('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name = 'profiler') and id not in (select function_id from sys.systemfunctions)); -ALTER TABLE sys.keywords SET READ ONLY; -ALTER TABLE sys.table_types SET READ ONLY; -ALTER TABLE sys.dependency_types SET READ ONLY; -CREATE TABLE sys.function_types ( -function_type_id SMALLINT NOT NULL PRIMARY KEY, -function_type_name VARCHAR(30) NOT NULL UNIQUE); -INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES -(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4, 'Filter function'), (5, 'Function returning a table'), -(6, 'Analytic function'), (7, 'Loader function'); -ALTER TABLE sys.function_types SET READ ONLY; -CREATE TABLE sys.function_languages ( -language_id SMALLINT NOT NULL PRIMARY KEY, -language_name VARCHAR(20) NOT NULL UNIQUE); -INSERT INTO sys.function_languages (language_id, language_name) VALUES -(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'), (6, 'Python'), (7, 'Python Mapped'), (8, 'Python2'), (9, 'Python2 Mapped'), (10, 'Python3'), (11, 'Python3 Mapped'); -ALTER TABLE sys.function_languages SET READ ONLY; -CREATE TABLE sys.key_types ( -key_type_id SMALLINT NOT NULL PRIMARY KEY, -key_type_name VARCHAR(15) NOT NULL UNIQUE); -INSERT INTO sys.key_types (key_type_id, key_type_name) VALUES -(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign Key'); -ALTER TABLE sys.key_types SET READ ONLY; -CREATE TABLE sys.index_types ( -index_type_id SMALLINT NOT NULL PRIMARY KEY, -index_type_name VARCHAR(25) NOT NULL UNIQUE); -INSERT INTO sys.index_types (index_type_id, index_type_name) VALUES -(0, 'Hash'), (1, 'Join'), (2, 'Order preserving hash'), (3, 'No-index'), (4, 'Imprint'), (5, 'Ordered'); -ALTER TABLE sys.index_types SET READ ONLY; -CREATE TABLE sys.privilege_codes ( -privilege_code_id INT NOT NULL PRIMARY KEY, -privilege_code_name VARCHAR(30) NOT NULL UNIQUE); -INSERT INTO sys.privilege_codes (privilege_code_id, privilege_code_name) VALUES -(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8, 'DELETE'), (16, 'EXECUTE'), (32, 'GRANT'), _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list