<html style="direction: ltr;">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=windows-1255"><style>body
      p { margin-bottom: 0cm; margin-top: 0pt; } </style>
  </head>
  <body style="direction: ltr;"
    bidimailui-detected-decoding-type="preferred-charset"
    bgcolor="#FFFFFF" text="#000000">
    <p>(double posting to QGIS and Spatialite)</p>
    <p>I'm Using QGIS 1.7.2 and Spatialite 2.4.0 on Ubuntu (same problem
      on Windows)<br>
    </p>
    <p>I've created a Spatialite DB and layer using the QGIS "New
      Spatialite Layer" dialog. It seems to add some additional triggers
      which call a function RTreeAlign(). But this function doesn't seem
      to exist?</p>
    <p>Here's the table:</p>
    <p>spatialite> .schema traps<br>
      CREATE TABLE "traps"("TrapID" text,"TrapType" text,"Longitude"
      real,"Latitude" real,"Elevation" real,"X_UTM" real,"Y_UTM"
      real,"Notes" text,"Attractant" text, "geometry" POINT);<br>
      CREATE TRIGGER "ggi_traps_geometry" BEFORE INSERT ON "traps"<br>
      FOR EACH ROW BEGIN<br>
      SELECT RAISE(ROLLBACK, 'traps.geometry violates Geometry
      constraint [geom-type or SRID not allowed]')<br>
      WHERE (SELECT type FROM geometry_columns<br>
      WHERE f_table_name = 'traps' AND f_geometry_column = 'geometry'<br>
      AND GeometryConstraints(NEW."geometry", type, srid, 'XY') = 1) IS
      NULL;<br>
      END;<br>
      CREATE TRIGGER "ggu_traps_geometry" BEFORE UPDATE ON "traps"<br>
      FOR EACH ROW BEGIN<br>
      SELECT RAISE(ROLLBACK, 'traps.geometry violates Geometry
      constraint [geom-type or SRID not allowed]')<br>
      WHERE (SELECT type FROM geometry_columns<br>
      WHERE f_table_name = 'traps' AND f_geometry_column = 'geometry'<br>
      AND GeometryConstraints(NEW."geometry", type, srid, 'XY') = 1) IS
      NULL;<br>
      END;<br>
      CREATE TRIGGER "gid_traps_geometry" AFTER DELETE ON "traps"<br>
      FOR EACH ROW BEGIN<br>
      DELETE FROM "idx_traps_geometry" WHERE pkid = OLD.ROWID;<br>
      END;<br>
      CREATE TRIGGER "gii_traps_geometry" AFTER INSERT ON "traps"<br>
      FOR EACH ROW BEGIN<br>
      DELETE FROM "idx_traps_geometry" WHERE pkid=NEW.ROWID;<br>
      SELECT RTreeAlign('"idx_traps_geometry"', NEW.ROWID,
      NEW."geometry");END;<br>
      CREATE TRIGGER "giu_traps_geometry" AFTER UPDATE ON "traps"<br>
      FOR EACH ROW BEGIN<br>
      DELETE FROM "idx_traps_geometry" WHERE pkid=NEW.ROWID;<br>
      SELECT RTreeAlign('"idx_traps_geometry"', NEW.ROWID,
      NEW."geometry");END;<br>
      <br>
    </p>
    <p><br>
    </p>
    <p>Any attempt to update or insert to this layer fails:</p>
    <p>Using the the spatialite CLI I get:</p>
    <p>spatialite> INSERT INTO traps (TrapID, Geometry) VALUES
      ('1000', MakePoint(10,10,4326));<br>
      SQL error: foreign key mismatch<br>
      spatialite> </p>
    <p>And from the Spatialite GUI, I get a window saying: SQL Error:"No
      such function RTreeAlign"</p>
    <p>What am I missing??</p>
    <p><br>
    </p>
    <p>Thanks,</p>
    <p>Micha<br>
    </p>
  </body>
</html>