diff --git a/.github/workflows/repro.yml b/.github/workflows/repro.yml index e6275a8..952f2cd 100644 --- a/.github/workflows/repro.yml +++ b/.github/workflows/repro.yml @@ -12,8 +12,7 @@ jobs: build: strategy: matrix: - # os: [macos-latest, ubuntu-latest, windows-latest] - os: [ubuntu-latest, windows-latest] + os: [macos-latest, ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps: diff --git a/README.md b/README.md index 7591f3c..cac6ee6 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ Also, post there if you used this driver for something interesting ([_"Show and tell"_](https://github.com/ncruces/go-sqlite3/discussions/categories/show-and-tell)), have an [idea](https://github.com/ncruces/go-sqlite3/discussions/categories/ideas)… -The [Issue](https://github.com/ncruces/go-sqlite3/issues) tracker is for bugs we want fixed, +The [Issue](https://github.com/ncruces/go-sqlite3/issues) tracker is for bugs, and features we're working on, planning to work on, or asking for help with. ### Alternatives @@ -106,4 +106,4 @@ and features we're working on, planning to work on, or asking for help with. - [`modernc.org/sqlite`](https://pkg.go.dev/modernc.org/sqlite) - [`crawshaw.io/sqlite`](https://pkg.go.dev/crawshaw.io/sqlite) - [`github.com/mattn/go-sqlite3`](https://pkg.go.dev/github.com/mattn/go-sqlite3) -- [`github.com/zombiezen/go-sqlite`](https://pkg.go.dev/github.com/zombiezen/go-sqlite) +- [`github.com/zombiezen/go-sqlite`](https://pkg.go.dev/github.com/zombiezen/go-sqlite) \ No newline at end of file diff --git a/embed/bcw2/bcw2.wasm b/embed/bcw2/bcw2.wasm index f32d434..f4b0653 100755 Binary files a/embed/bcw2/bcw2.wasm and b/embed/bcw2/bcw2.wasm differ diff --git a/embed/bcw2/build.sh b/embed/bcw2/build.sh index 107069a..6d22c62 100755 --- a/embed/bcw2/build.sh +++ b/embed/bcw2/build.sh @@ -17,6 +17,7 @@ cp "$ROOT"/sqlite3/*.patch build/ curl -# https://sqlite.org/src/tarball/sqlite.tar.gz?r=c09656c6 | tar xz cd sqlite +cat ../repro.patch | patch -p0 --no-backup-if-mismatch if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then MSYS_NO_PATHCONV=1 nmake /f makefile.msc sqlite3.c "OPTS=-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_ENABLE_ORDERED_SET_AGGREGATES" else diff --git a/embed/bcw2/repro.patch b/embed/bcw2/repro.patch new file mode 100644 index 0000000..160dec4 --- /dev/null +++ b/embed/bcw2/repro.patch @@ -0,0 +1,23 @@ +# https://sqlite.org/src/vpatch?from=67809715977a5bad&to=3f57584710d61174 +--- tool/mkpragmatab.tcl ++++ tool/mkpragmatab.tcl +@@ -526,14 +526,17 @@ + puts $fd [format {#define PragFlg_%-10s 0x%02x /* %s */} \ + $f $fv $flagMeaning($f)] + set fv [expr {$fv*2}] + } + +-# Sort the column lists so that longer column lists occur first ++# Sort the column lists so that longer column lists occur first. ++# In the event of a tie, sort column lists lexicographically. + # + proc colscmp {a b} { +- return [expr {[llength $b] - [llength $a]}] ++ set rc [expr {[llength $b] - [llength $a]}] ++ if {$rc} {return $rc} ++ return [string compare $a $b] + } + set cols_list [lsort -command colscmp $cols_list] + + # Generate the array of column names used by pragmas that act like + # queries.