| From: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Josh Berkus <josh(at)agliodbs(dot)com>, pgsql-hackers(at)postgresql(dot)org, Mark Wong <markwkm(at)gmail(dot)com> | 
| Subject: | Re: nested loop semijoin estimates | 
| Date: | 2015-06-02 22:20:21 | 
| Message-ID: | 556E2C25.9090709@2ndquadrant.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On 06/02/15 23:27, Tom Lane wrote:
> I wrote:
>> Hm.  In principle, add_path_precheck shouldn't be doing anything except
>> rejecting paths that would get rejected anyway later on.  However it
>> strikes me that there's a logic error in it; specifically, this
>> simplifying assumption is wrong:
>>           * For speed, we make exact rather than fuzzy cost comparisons. If an
>>           * old path dominates the new path exactly on both costs, it will
>>           * surely do so fuzzily.
>
> After staring at this awhile longer, I still don't see exactly why
> it's changing the results.
So the required_outer vs. (!consider_startup) inconsistency does not 
explain that?
> Do we have instructions around here anyplace on how to set up/use
 > TPC-DS? I couldn't find anything about it on the wiki ...
Not that I'm aware of, but it's not really all that difficult.
1) get the TPC-DS toolkit from
http://www.tpc.org/information/current_specifications.asp
2) build the 'tools' directory (just "make")
3) generate data "dsdgen -scale 1" (1GB dataset)
4) fix the data file formatting (pipe at the end)
for f in *.dat; do sed 's/|$//g' $f > ${f/dat/csv}; done;
5) create database structure (attached 'create.sql')
6) load data (attached 'load.sql', fix paths first)
7) indexes.sql
8) run queries.sql or explain.sql
--
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
| Attachment | Content-Type | Size | 
|---|---|---|
| create.sql | application/sql | 27.6 KB | 
| indexes.sql | application/sql | 8.1 KB | 
| load.sql | application/sql | 2.7 KB | 
| explain.sql | application/sql | 91.5 KB | 
| queries.sql | application/sql | 90.2 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Naoya Anzai | 2015-06-03 00:04:29 | Re: why does txid_current() assign new transaction-id? | 
| Previous Message | Peter Geoghegan | 2015-06-02 22:11:01 | Re: Minor issue with BRIN regression tests |