Giter Club home page Giter Club logo

Comments (7)

mattn avatar mattn commented on June 12, 2024

How about to use pragma?

PRAGMA temp_store_directory = '/path/to/the/tmpdir';

from go-sqlite3.

runlilong avatar runlilong commented on June 12, 2024

still not work

❯ sqlite3 db.bak -cmd "PRAGMA temp_store_directory = '/mnt/test'; VACUUM" .quit

Error: database or disk is full

...
_, err = db.Exec("PRAGMA temp_store_directory = '/mnt/test'; VACUUM")
...

❯ go run main.go
azTempDirs[0] = NULL
azTempDirs[1] = /mnt/test
2024/02/21 21:17:54 Database vacuumed successfully

from go-sqlite3.

mattn avatar mattn commented on June 12, 2024

What is azTempDirs ?

from go-sqlite3.

runlilong avatar runlilong commented on June 12, 2024

from https://raw.githubusercontent.com/mattn/go-sqlite3/master/sqlite3-binding.c. I add a print statement to confirm that it can access the env variable successfully.

/*
** Directories to consider for temp files.
*/
static const char *azTempDirs[] = {
  0,
  0,
  "/var/tmp",
  "/usr/tmp",
  "/tmp",
  "."
};

/*
** Initialize first two members of azTempDirs[] array.
*/
static void unixTempFileInit(void){
  azTempDirs[0] = getenv("SQLITE_TMPDIR");
  azTempDirs[1] = getenv("TMPDIR");
  printf("azTempDirs[0] = %s\n", azTempDirs[0] ? azTempDirs[0] : "NULL");
  printf("azTempDirs[1] = %s\n", azTempDirs[1] ? azTempDirs[1] : "NULL");
}

from go-sqlite3.

mattn avatar mattn commented on June 12, 2024

export SQLITE_TMPDIR=/mnt/test

How this work?

from go-sqlite3.

runlilong avatar runlilong commented on June 12, 2024

SQLITE_TMPDIR doesn't work for both of them

from go-sqlite3.

mattn avatar mattn commented on June 12, 2024
$ ls -lah /data/nostr-relay.sqlite
-rw------- 1 mattn mattn 1.7G  2月 22 23:20 /data/nostr-relay.sqlite
$ sudo mkdir test
$ sudo chmod 600 test
$ TMPDIR=./test SQLITE_TMPDIR=./test sqlite3 /data/nostr-relay.sqlite -cmd vacuum .quit

This is succeeded. sqlite3 cli really look TMPDIR for vacuum?

from go-sqlite3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.