Subdomain Posts
Progress | 1 day ago
None | 5 days ago
Java | 10 days ago
REBOL | 10 days ago
Perl | 11 days ago
MySQL | 695 days ago
MySQL | 705 days ago
SQL | 735 days ago
SQL | 735 days ago
SQL | 735 days ago
Recent Posts
None | 2 sec ago
None | 9 sec ago
C | 9 sec ago
None | 15 sec ago
C++ | 16 sec ago
None | 1 min ago
None | 1 min ago
None | 1 min ago
None | 1 min ago
None | 1 min ago
Sitereport
Find cool info about any domain on the internet?
visit sitereport
Free Subdomains
Want a pastebin.com sub-domain for your community?
learn more...
What is pastebin?
Pastebin is a website that hosts all your text & code on dedicated servers for easy sharing.
learn more...
Learn a little bit about the new Pastebin.com on our help page. hide message
By Yancho on the 6th of Dec 2007 11:32:21 AM Download | Raw | Embed | Report
  1. CREATE OR REPLACE FUNCTION near_hospital(text, integer, integer)
  2.   RETURNS integer AS
  3. $BODY$
  4.  
  5. DECLARE
  6.         pojnt ALIAS FOR $1;
  7.         box ALIAS FOR $2;
  8.         dist ALIAS FOR $3;
  9.  
  10.         distances RECORD;
  11.  
  12.         nearest RECORD;
  13.  
  14.  
  15. BEGIN
  16.        
  17.  
  18.        nearest.dist := 1000000000;
  19.  
  20.        FOR distances IN
  21.        
  22.                               SELECT astext(h.the_geom) AS hospital_location FROM hospitals h WHERE
  23.                                  (
  24.                                  h.the_geom && expand (pointfromtext(pojnt),100000) AND
  25.                                  distance ( h.the_geom , pointfromtext(pojnt) ) < 150000
  26.                                  )
  27.                             ORDER BY distance (h.the_geom , pointfromtext(pojnt)) ASC
  28.                             LIMIT 3;
  29.         LOOP
  30.  
  31.                SELECT INTO hospital gid, the_geom, length(the_geom) AS dist FROM shootingstar_sp
  32.                       ( 'streets',
  33.                            
  34.                             (
  35.                                 SELECT s.gid FROM streets s, hospitals h WHERE
  36.                                 source = (
  37.                                        SELECT give_source(distances.hospital_location,100000,150000))
  38.                                 LIMIT 1
  39.                             )
  40.  
  41.                             ,
  42.  
  43.                             (
  44.                                 SELECT gid FROM streets WHERE
  45.                                 target = (SELECT give_target(pojnt,100000,150000))
  46.                                 LIMIT 1
  47.                             )
  48.                            
  49.                             ,
  50.                            5000,
  51.                            'length',
  52.                            true,
  53.                            true
  54.                       );
  55.              
  56.  
  57.               IF hospital.dist < nearest.dist  THEN
  58.                   nearest.dist := hospital.dist;
  59.                   nearest.gid := hospital.gid;
  60.  
  61.                   SELECT INTO nearest name FROM hospital h
  62.                      WHERE h.gid = hospital.gid ;
  63.  
  64.               END IF;
  65.              
  66.        END LOOP;
  67.        
  68.        RETURN nearest.gid;
  69.      
  70. END;
  71.  
  72. ' language 'plpgsql';
Submit a correction or amendment below. [ previous version ] | [ difference ] | Make A New Post
To highlight particular lines, prefix each line with @h@
Syntax highlighting:
Post expiration:
Post exposure:
Name / Title:
Email: