useDynLib(SQLiteDF)
export(sqlite.data.frame, sqlite.vector, sqlite.matrix)
export(lsSdf, getSdf,attachSdf,detachSdf)
export(dupSdf,renameSdf, inameSdf, rbindSdf)
export(sdfImportDBI, sdfImportSQLite)
export(sdflm, sdflm2)
export(sdfSelect)
#export(sdf_tmpdir)

export(typeSvec, has.typeSvec)

importFrom(utils, head, tail)

# since Depends: R (>= 2.3.0) already, check pre 2.4.0 only
if (paste(R.version$major, R.version$minor, sep=".") < "2.4.0") {
    export(sort, median)      # uses quantile, w/c uses sort()
    S3method(sort, default)
    export(quantile.default)  # to use sort()
    importFrom(stats, quantile.default)
}

S3method(names, sqlite.data.frame)
S3method(length, sqlite.data.frame)
S3method(row.names, sqlite.data.frame)
S3method(dim, sqlite.data.frame)
S3method(dimnames, sqlite.data.frame)
S3method("$", sqlite.data.frame)
S3method("[[", sqlite.data.frame)
S3method("[", sqlite.data.frame)
S3method(as.list, sqlite.data.frame)
S3method(is.list, sqlite.data.frame)
S3method(with, sqlite.data.frame)
S3method(as.data.frame, sqlite.data.frame)
#S3method(as.matrix, sqlite.data.frame)
S3method(head, sqlite.data.frame)
S3method(tail, sqlite.data.frame)
S3method(print, sqlite.data.frame)
S3method(summary, sqlite.data.frame)

S3method("[", sqlite.vector)
S3method("[<-", sqlite.vector)
S3method(length, sqlite.vector)
S3method(as.double, sqlite.vector)
S3method(as.character, sqlite.vector)
S3method(as.logical, sqlite.vector)
S3method(as.integer, sqlite.vector)
S3method(Math, sqlite.vector)
S3method(Summary, sqlite.vector)
S3method(Ops, sqlite.vector)
S3method(sort, sqlite.vector)
#S3method(is.numeric, sqlite.vector)
#S3method(is.character, sqlite.vector)
#S3method(is.integer, sqlite.vector)
S3method(summary, sqlite.vector)
S3method(all.equal, sqlite.vector)
S3method(print, sqlite.vector)
S3method(mean, sqlite.vector)
S3method(is.list, sqlite.vector)

S3method(length, sqlite.matrix)
S3method(dim, sqlite.matrix)
S3method(dimnames, sqlite.matrix)
S3method(head, sqlite.matrix)
S3method(print, sqlite.matrix)
S3method("[", sqlite.matrix)
S3method(Ops, sqlite.matrix)

#S3method(coef, sdflm)
S3method(update, sdflm)