forked from MTSR/mapserver
tiledb insert
This commit is contained in:
parent
b3b55a27fc
commit
b5d3e934b9
@ -53,6 +53,8 @@ func (db *Sqlite3Accessor) GetTile(layerId int, pos coords.TileCoords) (*Tile, e
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
if rows.Next() {
|
if rows.Next() {
|
||||||
var data []byte
|
var data []byte
|
||||||
var mtime int64
|
var mtime int64
|
||||||
@ -80,13 +82,12 @@ func (db *Sqlite3Accessor) GetTile(layerId int, pos coords.TileCoords) (*Tile, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
const setTileQuery = `
|
const setTileQuery = `
|
||||||
insert into tiles(x,y,zoom,layerid,data,mtime)
|
insert or replace into tiles(x,y,zoom,layerid,data,mtime)
|
||||||
values(?, ?, ?, ?, ?, ?)
|
values(?, ?, ?, ?, ?, ?)
|
||||||
on conflict replace
|
|
||||||
`
|
`
|
||||||
|
|
||||||
func (db *Sqlite3Accessor) SetTile(tile *Tile) error {
|
func (db *Sqlite3Accessor) SetTile(tile *Tile) error {
|
||||||
_, err := db.db.Query(setTileQuery, tile.Pos.X, tile.Pos.Y, tile.Pos.Zoom, tile.LayerId, tile.Data, tile.Mtime)
|
_, err := db.db.Exec(setTileQuery, tile.Pos.X, tile.Pos.Y, tile.Pos.Zoom, tile.LayerId, tile.Data, tile.Mtime)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestMigrate(t *testing.T) {
|
func TestMigrate(t *testing.T) {
|
||||||
tmpfile, err := ioutil.TempFile("", "TestMigrateEmpty.*.sqlite")
|
tmpfile, err := ioutil.TempFile("", "TileDBTest.*.sqlite")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -25,14 +25,38 @@ func TestMigrate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pos := coords.NewTileCoords(0, 0, 13)
|
pos := coords.NewTileCoords(0, 0, 13)
|
||||||
_, err = db.GetTile(0, pos)
|
tile, err := db.GetTile(0, pos)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
data := []byte{}
|
if tile != nil {
|
||||||
tile := Tile{LayerId: 0, Pos: pos, Data: data}
|
t.Fatal("non-empty tile found")
|
||||||
err = db.SetTile(&tile)
|
}
|
||||||
|
|
||||||
|
data := []byte{0x01, 0x02}
|
||||||
|
tile2 := Tile{LayerId: 0, Pos: pos, Data: data}
|
||||||
|
err = db.SetTile(&tile2)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
tile3, err := db.GetTile(0, pos)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if tile3 == nil {
|
||||||
|
t.Fatal("no data returned")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(tile2.Data) != len(tile3.Data) {
|
||||||
|
t.Fatal("inserted data does not match")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = db.SetTile(&tile2)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user