On Sun, Aug 12, 2007 at 09:27:36PM +0200, Sjoerd Mullender wrote:
> On 08/12/2007 08:39 PM, Martin Kersten wrote:
> > Update of /cvsroot/monetdb/clients/src/mapiclient
> > In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv25741
> > 
> > Modified Files:
> >     dump.c 
> > Log Message:
> > Remove duplicate rows. This solves the duplicates seen
> > when typing '\d idxs'.
> 
> Is this the right thing to do?  The problem, it seems to me, is that
> idxs occurs twice in the tables table (select * from tables where name =
> 'idxs'; returns two entries).  Is that correct?

no the double idxs tables are both correct

select * from tables t, schemas s where name = 'idxs' and s.id = t.schema_id;
% sys.t,        sys.t,  sys.t,  sys.t,  sys.t,  sys.t,  sys.t,  sys.t,  sys.s, 
sys.s,   sys.s,  sys.s # table_name
% id,   name,   schema_id,      query,  type,   system, commit_action,  
temporary,      id,     name,   authorization,  owner # name
% int,  varchar,        int,    varchar,        smallint,       boolean,       
smallint,        tinyint,        int,    varchar,        int,    int # type
% 4,    4,      4,      1,      1,      5,      1,      1,      4,      3,     
1,       1 # length
[ 1049, "idxs", 982,    NULL,   0,      true,   0,      0,      982,    "sys", 
2,       3       ]
[ 1109, "idxs", 1083,   NULL,   0,      true,   2,      0,      1083,   "tmp", 
2,       3       ]
sql>

So forget the distinct use a correct query (ie only use sys._tables ie no
temp tables (allthough these maybe need to be dumped too (the create statements
that is)).

Niels

> 
> > Index: dump.c
> > ===================================================================
> > RCS file: /cvsroot/monetdb/clients/src/mapiclient/dump.c,v
> > retrieving revision 1.7
> > retrieving revision 1.8
> > diff -u -d -r1.7 -r1.8
> > --- dump.c  10 Aug 2007 11:48:59 -0000      1.7
> > +++ dump.c  12 Aug 2007 18:39:52 -0000      1.8
> > @@ -79,7 +79,7 @@
> >     fprintf(toConsole, " (\n");
> >  
> >     snprintf(query, maxquerylen,
> > -            "SELECT \"c\".\"name\","               /* 0 */
> > +            "SELECT DISTINCT \"c\".\"name\","              /* 0 */
> >                     "\"c\".\"type\","               /* 1 */
> >                     "\"c\".\"type_digits\","        /* 2 */
> >                     "\"c\".\"type_scale\","         /* 3 */
> > @@ -212,7 +212,7 @@
> >     }
> >     mapi_close_handle(hdl);
> >     snprintf(query, maxquerylen,
> > -            "SELECT \"kc\".\"column\","            /* 0 */
> > +            "SELECT DISTINCT \"kc\".\"column\","           /* 0 */
> >                     "\"kc\".\"nr\", "               /* 1 */
> >                     "\"k\".\"name\" "               /* 2 */
> >              "FROM \"keycolumns\" \"kc\", "
> > @@ -267,7 +267,7 @@
> >     mapi_close_handle(hdl);
> >  
> >     snprintf(query, maxquerylen,
> > -            "SELECT \"kc\".\"column\","            /* 0 */
> > +            "SELECT DISTINCT \"kc\".\"column\","           /* 0 */
> >                     "\"kc\".\"nr\", "               /* 1 */
> >                     "\"k\".\"name\" "               /* 2 */
> >              "FROM \"keycolumns\" \"kc\", "
> > @@ -325,7 +325,7 @@
> >     mapi_close_handle(hdl);
> >  
> >     snprintf(query, maxquerylen,
> > -            "SELECT \"pkt\".\"name\","             /* 0 */
> > +            "SELECT DISTINCT \"pkt\".\"name\","            /* 0 */
> >                     "\"pkkc\".\"column\","          /* 1 */
> >                     "\"fkkc\".\"column\","          /* 2 */
> >                     "\"fkkc\".\"nr\","              /* 3 */
> > @@ -432,7 +432,7 @@
> >     fprintf(toConsole, ");\n");
> >  
> >     snprintf(query, maxquerylen,
> > -            "SELECT \"i\".\"name\", "              /* 0 */
> > +            "SELECT DISTINCT \"i\".\"name\", "             /* 0 */
> >                     "\"k\".\"name\", "              /* 1 */
> >                     "\"kc\".\"nr\", "               /* 2 */
> >                     "\"c\".\"name\" "               /* 3 */
> > @@ -576,13 +576,13 @@
> >  {
> >     const char *start = "START TRANSACTION";
> >     const char *end = "COMMIT";
> > -   const char *sequences1 = "SELECT \"name\" FROM \"sequences\"";
> > -   const char *sequences2 = "SELECT 
> > seq.\"name\",get_value_for(s.\"name\",seq.\"name\"),\"minvalue\",\"maxvalue\",\"increment\",\"cycle\"
> >  FROM \"sequences\" seq, \"schemas\" s WHERE s.id = seq.schema_id";
> > +   const char *sequences1 = "SELECT DISTINCT \"name\" FROM \"sequences\"";
> > +   const char *sequences2 = "SELECT DISTINCT 
> > seq.\"name\",get_value_for(s.\"name\",seq.\"name\"),\"minvalue\",\"maxvalue\",\"increment\",\"cycle\"
> >  FROM \"sequences\" seq, \"schemas\" s WHERE s.id = seq.schema_id";
> >     const char *tables = "SELECT \"name\" FROM \"_tables\" WHERE "
> >             "\"type\" = 0 AND \"system\" = FALSE";
> > -   const char *views = "SELECT \"name\",\"query\" FROM \"_tables\" WHERE "
> > +   const char *views = "SELECT DISTINCT \"name\",\"query\" FROM 
> > \"_tables\" WHERE "
> >             "\"type\" = 1 AND \"system\" = FALSE";
> > -   const char *functions = "SELECT \"func\" FROM \"functions\" WHERE "
> > +   const char *functions = "SELECT DISTINCT \"func\" FROM \"functions\" 
> > WHERE "
> >             "\"sql\" = TRUE";
> >     MapiHdl hdl;
> >     int rc = 0;
> > 
> > 
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by: Splunk Inc.
> > Still grepping through log files to find problems?  Stop.
> > Now Search log events and configuration files using AJAX and a browser.
> > Download your FREE copy of Splunk now >>  http://get.splunk.com/
> > _______________________________________________
> > Monetdb-checkins mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
> 
> 
> -- 
> Sjoerd Mullender
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Monetdb-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/monetdb-developers

-- 

Niels Nes, Centre for Mathematics and Computer Science (CWI)
Kruislaan 413, 1098 SJ Amsterdam, The Netherlands
room C0.02,  phone ++31 20 592-4098, fax ++31 20 592-4312
url: http://www.cwi.nl/~niels   e-mail: [EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to