<font color="#006600"><font size="2"><font face="courier new,monospace">Hey Kevin,</font></font></font><div><font color="#006600"><font size="2"><font face="courier new,monospace"><br></font></font></font></div><div><font color="#006600"><font size="2"><font face="courier new,monospace">Thanks for your reply. Will this be faster than updating the spatial points after loading the lat/lon values? I will sure try this out in a while. But if this is going to slower that that things wont be easier for me. What is your opinion?</font></font></font></div>

<div><font color="#006600"><font size="2"><font face="courier new,monospace"><br></font></font></font></div><div><font color="#006600"><font size="2"><font face="courier new,monospace">Thanks,</font></font></font></div><div>

<font color="#006600"><font size="2"><font face="courier new,monospace">Sairam<br></font></font></font><br><div class="gmail_quote">On Mon, Dec 6, 2010 at 12:00 PM, Kevin Neufeld <span dir="ltr"><<a href="http://kneufeld.ca">kneufeld.ca</a>@<a href="http://gmail.com">gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

  
    
  
  <div bgcolor="#ffffff" text="#000000">
    You could create a BEFORE INSERT TRIGGER on your table that modifies
    the records you are inserting by populating the spatial column using
    the NEW.long and NEW.lat values.<br>
    <br>
    Alternatively, you mentioned that you didn't even want long/lat in
    the database at all.  In that case, as part of your loading script,
    you could try to:<br>
    - create a temp dummy table as the target for your COPY command<br>
    - place a RULE on the dummy table to redirects INSERTs into a table
    for all your data<br>
    - run the COPY and drop the dummy table.<br>
    <br>
    i.e., this works.<br>
    <br>
    <tt>CREATE TABLE foo (pt geometry);<br>
      CREATE TEMP TABLE foo_tmp (long double precision, lat double
      precision);<br>
      <br>
      CREATE RULE foo_tmp_insert_rule AS <br>
         ON INSERT TO foo_tmp<br>
         DO INSTEAD<br>
         INSERT INTO foo (pt) VALUES (ST_MakePoint(NEW.long, NEW.lat));<br>
      <br>
      -- You would use your COPY command here to insert records<br>
      INSERT INTO foo_tmp (long, lat) VALUES (-56.57647, -64.7647);<br>
      DROP TABLE foo_tmp CASCADE;<br>
      <br>
      SELECT ST_AsText(pt) FROM foo;<br>
               st_astext<br>
      ---------------------------<br>
       POINT(-56.57647 -64.7647)<br>
      (1 rows)<br>
    </tt><br>
    <br>
    Cheers,<br>
    Kevin<div><div></div><div class="h5"><br>
    <br>
    <br>
    On 12/6/2010 8:43 AM, Sairam Krishnamurthy wrote:
    </div></div><blockquote type="cite"><div><div></div><div class="h5">
      
      <font face="Courier New, Courier, monospace">All,<br>
        <br>
        I have a test file that contains the data to the loaded to the
        spatial
        table I have. The table structure is
        <lat,lon,data1,data2,spatialPoint>. Sample data in the txt
        file :
        <-64.7647, -56.57647, 1234548, 1221312>. <br>
        <br>
        So I want to load the table from this text file. I use the COPY
        query
        below. <br>
        <br>
        <b>COPY "table_name" (lat,lon,data1,data2) FROM 'FILE' DELIMITER
          ','</b><br>
        <br>
        But the problem is I am not able to update the spatialPoint
        using copy
        query. So for now I am loading the lat,lon,data1,data2 fields
        and then
        update the spatialPoint using a separate query similar to one
        below:<br>
        <br>
        <b>UPDATE "table_name" SET "spatialPoint" =
          ST_SetSRID(ST_MakePoint(lat,lon),4326) WHERE "spatialPoint" IS
          NULL</b><br>
        <br>
        My question is, is there a way to avoid the second query so that
        I can
        also load the spatialPoint in the COPY query?<br>
        <br>
        Also I initial dint want to have lat,lon in the table and have
        only the
        spatialPoint field. Because of the above problem I was forced to
        have
        lat,lon fields in the table. Someway to achieve this will help
        me a lot.<br>
      </font><br>
       <br>
      <pre cols="72">Thanks,
Sairam Krishnamurthy
+1 612 859 8161
</pre>
      </div></div><pre><fieldset></fieldset>
_______________________________________________
postgis-users mailing list
<a href="mailto:postgis-users@postgis.refractions.net" target="_blank">postgis-users@postgis.refractions.net</a>
<a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
<a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>
<br></blockquote></div><br></div>