Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rqlite for openSUSE:Factory checked 
in at 2026-01-30 18:22:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rqlite (Old)
 and      /work/SRC/openSUSE:Factory/.rqlite.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rqlite"

Fri Jan 30 18:22:47 2026 rev:42 rq:1329885 version:9.3.18

Changes:
--------
--- /work/SRC/openSUSE:Factory/rqlite/rqlite.changes    2026-01-17 
21:43:53.308720107 +0100
+++ /work/SRC/openSUSE:Factory/.rqlite.new.1995/rqlite.changes  2026-01-30 
18:22:52.102993555 +0100
@@ -1,0 +2,6 @@
+Thu Jan 29 20:14:20 UTC 2026 - Andreas Stieger <[email protected]>
+
+- Update to version 9.3.18:
+  * Upgrade SQL parser
+
+-------------------------------------------------------------------

Old:
----
  rqlite-9.3.15.tar.xz

New:
----
  rqlite-9.3.18.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rqlite.spec ++++++
--- /var/tmp/diff_new_pack.A7RbV5/_old  2026-01-30 18:22:52.755020918 +0100
+++ /var/tmp/diff_new_pack.A7RbV5/_new  2026-01-30 18:22:52.759021086 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           rqlite
-Version:        9.3.15
+Version:        9.3.18
 Release:        0
 Summary:        Distributed relational database built on SQLite
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.A7RbV5/_old  2026-01-30 18:22:52.799022765 +0100
+++ /var/tmp/diff_new_pack.A7RbV5/_new  2026-01-30 18:22:52.803022933 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/rqlite/rqlite.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v9.3.15</param>
+    <param name="revision">v9.3.18</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.A7RbV5/_old  2026-01-30 18:22:52.827023940 +0100
+++ /var/tmp/diff_new_pack.A7RbV5/_new  2026-01-30 18:22:52.831024108 +0100
@@ -1,7 +1,7 @@
 <servicedata>
   <service name="tar_scm">
     <param name="url">https://github.com/rqlite/rqlite.git</param>
-    <param 
name="changesrevision">a86a145ca340376b32eb3a9a9c557dce38e7151f</param>
+    <param 
name="changesrevision">d3ad631f99cca1e572411ce6ba736f6fc53eea13</param>
   </service>
 </servicedata>
 (No newline at EOF)

++++++ rqlite-9.3.15.tar.xz -> rqlite-9.3.18.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rqlite-9.3.15/CHANGELOG.md 
new/rqlite-9.3.18/CHANGELOG.md
--- old/rqlite-9.3.15/CHANGELOG.md      2026-01-17 01:01:32.000000000 +0100
+++ new/rqlite-9.3.18/CHANGELOG.md      2026-01-29 05:01:00.000000000 +0100
@@ -1,3 +1,13 @@
+## v9.3.18 (January 28th 2026)
+There are no changes in this release relative to v9.3.17. This release simply 
removes support for building `linux/386` Docker images.
+
+## v9.3.17 (January 28th 2026)
+There are no changes in this release relative to v9.3.16. This release simply 
fixes a `linux/386` Docker packaging issue.
+
+## v9.3.16 (January 28th 2026)
+### Implementation changes and bug fixes
+- [PR #2450](https://github.com/rqlite/rqlite/pull/2450): Upgrade SQL parser.
+
 ## v9.3.15 (January 16th 2026)
 ### Implementation changes and bug fixes
 - [PR #2447](https://github.com/rqlite/rqlite/pull/2447): Upgrade SQL parser.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rqlite-9.3.15/Dockerfile new/rqlite-9.3.18/Dockerfile
--- old/rqlite-9.3.15/Dockerfile        2026-01-17 01:01:32.000000000 +0100
+++ new/rqlite-9.3.18/Dockerfile        2026-01-29 05:01:00.000000000 +0100
@@ -52,11 +52,16 @@
     cd asg017* && sh scripts/vendor.sh && echo "#include <sys/types.h>" | cat 
- sqlite-vec.c > temp && mv temp sqlite-vec.c && make loadable && zip -j 
/extensions/sqlite-vec.zip dist/vec0.so
 
 RUN set -e; \
-    sqliteai_vector=$(curl -s 
https://api.github.com/repos/sqliteai/sqlite-vector/releases/latest | jq -r 
.tarball_url); \
-    echo "Downloading sqliteai-vector from: $sqliteai_vector"; \
-    curl -L "$sqliteai_vector" -o sqliteai-vector.tar.gz
-RUN tar xvfz sqliteai-vector.tar.gz && rm sqliteai-vector.tar.gz && \
-    cd sqliteai* && make && zip -j /extensions/sqliteai-vector.zip 
dist/vector.so
+    if [ "$TARGETOS" = "linux" ] && [ "$TARGETARCH" = "386" ]; then \
+        echo "Skipping sqliteai-vector entirely on $TARGETOS/$TARGETARCH"; \
+    else \
+        sqliteai_vector=$(curl -s 
https://api.github.com/repos/sqliteai/sqlite-vector/releases/latest | jq -r 
.tarball_url); \
+        echo "Downloading sqliteai-vector from: $sqliteai_vector"; \
+        curl -L "$sqliteai_vector" -o sqliteai-vector.tar.gz; \
+        tar xvfz sqliteai-vector.tar.gz; \
+        rm sqliteai-vector.tar.gz; \
+        cd sqliteai* && make && zip -j /extensions/sqliteai-vector.zip 
dist/vector.so; \
+    fi
 
 RUN git clone https://github.com/rqlite/rqlite-sqlite-ext.git
 RUN cd rqlite-sqlite-ext/misc && make && zip /extensions/misc.zip *.so
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rqlite-9.3.15/go.mod new/rqlite-9.3.18/go.mod
--- old/rqlite-9.3.15/go.mod    2026-01-17 01:01:32.000000000 +0100
+++ new/rqlite-9.3.18/go.mod    2026-01-29 05:01:00.000000000 +0100
@@ -16,7 +16,7 @@
        github.com/peterh/liner v1.2.2
        github.com/rqlite/raft-boltdb/v2 v2.0.0-20230523104317-c08e70f4de48
        github.com/rqlite/rqlite-disco-clients 
v0.0.0-20250205044118-8ada2b350099
-       github.com/rqlite/sql v0.0.0-20260116021722-655729ca2eff
+       github.com/rqlite/sql v0.0.0-20260129012909-a110ae1f061e
        go.etcd.io/bbolt v1.4.3
        golang.org/x/net v0.48.0
        google.golang.org/protobuf v1.36.11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rqlite-9.3.15/go.sum new/rqlite-9.3.18/go.sum
--- old/rqlite-9.3.15/go.sum    2026-01-17 01:01:32.000000000 +0100
+++ new/rqlite-9.3.18/go.sum    2026-01-29 05:01:00.000000000 +0100
@@ -243,8 +243,8 @@
 github.com/rqlite/raft-boltdb/v2 v2.0.0-20230523104317-c08e70f4de48/go.mod 
h1:CRnsxgy5G8fAf5J+AM0yrsSdxXHKkIYOaq2sm+Q4DYc=
 github.com/rqlite/rqlite-disco-clients v0.0.0-20250205044118-8ada2b350099 
h1:5cqkVLdl6sGJSY3kiF2dqaA3bD+8OS5FUdZqO0BxXLU=
 github.com/rqlite/rqlite-disco-clients 
v0.0.0-20250205044118-8ada2b350099/go.mod 
h1:6SVI8KegsW9Fyu2UQ+uvw0JI5CAILRYRyiQ/OFSJPrs=
-github.com/rqlite/sql v0.0.0-20260116021722-655729ca2eff 
h1:LUxzsaiuU1BzXdlYdgUP2LCin9HGHxaTxJaqB0C80pg=
-github.com/rqlite/sql v0.0.0-20260116021722-655729ca2eff/go.mod 
h1:ib9zVtNgRKiGuoMyUqqL5aNpk+r+++YlyiVIkclVqPg=
+github.com/rqlite/sql v0.0.0-20260129012909-a110ae1f061e 
h1:nfXRWwbMe7+Lbac7OJlmheAP9vHnXvRJS+yomo0UhDI=
+github.com/rqlite/sql v0.0.0-20260129012909-a110ae1f061e/go.mod 
h1:ib9zVtNgRKiGuoMyUqqL5aNpk+r+++YlyiVIkclVqPg=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 
h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod 
h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/sirupsen/logrus v1.2.0/go.mod 
h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=

++++++ vendor.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/rqlite/sql/ast.go 
new/vendor/github.com/rqlite/sql/ast.go
--- old/vendor/github.com/rqlite/sql/ast.go     2026-01-17 01:01:32.000000000 
+0100
+++ new/vendor/github.com/rqlite/sql/ast.go     2026-01-29 05:01:00.000000000 
+0100
@@ -2721,9 +2721,11 @@
        InsertOrIgnore   Pos // position of IGNORE keyword after INSERT OR
        Into             Pos // position of INTO keyword
 
-       Table *Ident // table name
-       As    Pos    // position of AS keyword
-       Alias *Ident // optional alias
+       Schema *Ident // optional schema name
+       Dot    Pos    // position of DOT between schema and table name
+       Table  *Ident // table name
+       As     Pos    // position of AS keyword
+       Alias  *Ident // optional alias
 
        ColumnsLparen Pos      // position of column list left paren
        Columns       []*Ident // optional column list
@@ -2748,6 +2750,7 @@
        }
        other := *s
        other.WithClause = s.WithClause.Clone()
+       other.Schema = s.Schema.Clone()
        other.Table = s.Table.Clone()
        other.Alias = s.Alias.Clone()
        other.Columns = cloneIdents(s.Columns)
@@ -2783,7 +2786,12 @@
                }
        }
 
-       fmt.Fprintf(&buf, " INTO %s", s.Table.String())
+       buf.WriteString(" INTO ")
+       if s.Schema != nil {
+               buf.WriteString(s.Schema.String())
+               buf.WriteString(".")
+       }
+       buf.WriteString(s.Table.String())
        if s.Alias != nil {
                fmt.Fprintf(&buf, " AS %s", s.Alias.String())
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/rqlite/sql/parser.go 
new/vendor/github.com/rqlite/sql/parser.go
--- old/vendor/github.com/rqlite/sql/parser.go  2026-01-17 01:01:32.000000000 
+0100
+++ new/vendor/github.com/rqlite/sql/parser.go  2026-01-29 05:01:00.000000000 
+0100
@@ -1382,8 +1382,8 @@
 func (p *Parser) parseIdent(desc string) (*Ident, error) {
        pos, tok, lit := p.scan()
        switch tok {
-       case IDENT, QIDENT:
-               return &Ident{Name: lit, NamePos: pos, Quoted: tok == QIDENT}, 
nil
+       case IDENT, QIDENT, BIDENT:
+               return &Ident{Name: lit, NamePos: pos, Quoted: tok == QIDENT || 
tok == BIDENT}, nil
        case NULL:
                return &Ident{Name: lit, NamePos: pos}, nil
        default:
@@ -1475,10 +1475,18 @@
        }
        stmt.Into, _, _ = p.scan()
 
-       // Parse table name & optional alias.
+       // Parse table name & optional schema & alias.
        if stmt.Table, err = p.parseIdent("table name"); err != nil {
                return &stmt, err
        }
+       // Check for schema.table syntax
+       if p.peek() == DOT {
+               stmt.Schema = stmt.Table
+               stmt.Dot, _, _ = p.scan()
+               if stmt.Table, err = p.parseIdent("table name"); err != nil {
+                       return &stmt, err
+               }
+       }
        if p.peek() == AS {
                stmt.As, _, _ = p.scan()
                if stmt.Alias, err = p.parseIdent("alias"); err != nil {
@@ -1731,7 +1739,7 @@
                return nil, p.errorExpected(p.pos, p.tok, "table name")
        }
        ident, _ := p.parseIdent("table name")
-       if stmt.Table, err = p.parseQualifiedTableName(ident, false, false, 
false); err != nil {
+       if stmt.Table, err = p.parseQualifiedTableName(ident, true, false, 
false); err != nil {
                return &stmt, err
        }
 
@@ -2201,7 +2209,7 @@
        switch p.peek() {
        case LP:
                return p.parseParenSource()
-       case IDENT, QIDENT:
+       case IDENT, QIDENT, BIDENT:
                return p.parseQualifiedTable(true, true, true)
        case VALUES:
                return p.parseSelectStatement(false, nil)
@@ -2538,7 +2546,7 @@
        pos, tok, lit := p.scan()
        switch {
        case isExprIdentToken(tok):
-               ident := &Ident{Name: lit, NamePos: pos, Quoted: tok == QIDENT}
+               ident := &Ident{Name: lit, NamePos: pos, Quoted: tok == QIDENT 
|| tok == BIDENT}
                if p.peek() == DOT {
                        return p.parseQualifiedRef(ident)
                } else if p.peek() == LP {
@@ -2688,7 +2696,7 @@
                expr.Star, _, _ = p.scan()
        } else if isIdentToken(p.peek()) {
                pos, tok, lit := p.scan()
-               expr.Column = &Ident{Name: lit, NamePos: pos, Quoted: tok == 
QIDENT}
+               expr.Column = &Ident{Name: lit, NamePos: pos, Quoted: tok == 
QIDENT || tok == BIDENT}
        } else {
                return &expr, p.errorExpected(p.pos, p.tok, "column name")
        }
@@ -2785,7 +2793,7 @@
        // If specifying a window name, read it and exit.
        if isIdentToken(p.peek()) {
                pos, tok, lit := p.scan()
-               clause.Name = &Ident{Name: lit, NamePos: pos, Quoted: tok == 
QIDENT}
+               clause.Name = &Ident{Name: lit, NamePos: pos, Quoted: tok == 
QIDENT || tok == BIDENT}
                return &clause, nil
        }
 
@@ -2807,7 +2815,7 @@
        // Read base window name.
        if isIdentToken(p.peek()) {
                pos, tok, lit := p.scan()
-               def.Base = &Ident{Name: lit, NamePos: pos, Quoted: tok == 
QIDENT}
+               def.Base = &Ident{Name: lit, NamePos: pos, Quoted: tok == 
QIDENT || tok == BIDENT}
        }
 
        // Parse "PARTITION BY expr, expr..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/rqlite/sql/scanner.go 
new/vendor/github.com/rqlite/sql/scanner.go
--- old/vendor/github.com/rqlite/sql/scanner.go 2026-01-17 01:01:32.000000000 
+0100
+++ new/vendor/github.com/rqlite/sql/scanner.go 2026-01-29 05:01:00.000000000 
+0100
@@ -35,7 +35,7 @@
                        return s.scanBlob()
                } else if isAlpha(ch) || ch == '_' {
                        return s.scanUnquotedIdent(s.pos, "")
-               } else if ch == '"' {
+               } else if ch == '"' || ch == '`' {
                        return s.scanQuotedIdent()
                } else if ch == '\'' {
                        return s.scanString()
@@ -143,7 +143,7 @@
 
 func (s *Scanner) scanQuotedIdent() (Pos, Token, string) {
        ch, pos := s.read()
-       assert(ch == '"')
+       assert(ch == '"' || ch == '`')
 
        s.buf.Reset()
        for {
@@ -157,6 +157,13 @@
                                continue
                        }
                        return pos, QIDENT, s.buf.String()
+               } else if ch == '`' {
+                       if s.peek() == '`' { // escaped quote
+                               s.read()
+                               s.buf.WriteRune('`')
+                               continue
+                       }
+                       return pos, BIDENT, s.buf.String()
                }
                s.buf.WriteRune(ch)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/rqlite/sql/token.go 
new/vendor/github.com/rqlite/sql/token.go
--- old/vendor/github.com/rqlite/sql/token.go   2026-01-17 01:01:32.000000000 
+0100
+++ new/vendor/github.com/rqlite/sql/token.go   2026-01-29 05:01:00.000000000 
+0100
@@ -38,6 +38,7 @@
        literal_beg
        IDENT   // IDENT
        QIDENT  // "IDENT"
+       BIDENT  // `IDENT`
        STRING  // 'string'
        BLOB    // ???
        FLOAT   // 123.45
@@ -257,6 +258,7 @@
 
        IDENT:   "IDENT",
        QIDENT:  "QIDENT",
+       BIDENT:  "BIDENT",
        STRING:  "STRING",
        BLOB:    "BLOB",
        FLOAT:   "FLOAT",
@@ -512,17 +514,17 @@
 }
 
 func isIdentToken(tok Token) bool {
-       return tok == IDENT || tok == QIDENT
+       return tok == IDENT || tok == QIDENT || tok == BIDENT
 }
 
 // isExprIdentToken returns true if tok can be used as an identifier in an 
expression.
-// It includes IDENT, QIDENT, bare tokens (keywords that can be used as 
identifiers),
+// It includes IDENT, QIDENT, BIDENT, bare tokens (keywords that can be used 
as identifiers),
 // and certain other keywords like ROWID.
 // Note: Some bare tokens have special expression handling (CAST, CASE, RAISE, 
etc.)
 // and should not be treated as identifiers in parseOperand.
 func isExprIdentToken(tok Token) bool {
        switch tok {
-       case IDENT, QIDENT:
+       case IDENT, QIDENT, BIDENT:
                return true
        // ROWID is a special keyword that can be used as an identifier but is 
not a bare token
        case ROWID:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-01-17 01:01:32.000000000 +0100
+++ new/vendor/modules.txt      2026-01-29 05:01:00.000000000 +0100
@@ -250,7 +250,7 @@
 github.com/rqlite/rqlite-disco-clients/dnssrv
 github.com/rqlite/rqlite-disco-clients/etcd
 github.com/rqlite/rqlite-disco-clients/expand
-# github.com/rqlite/sql v0.0.0-20260116021722-655729ca2eff
+# github.com/rqlite/sql v0.0.0-20260129012909-a110ae1f061e
 ## explicit; go 1.17
 github.com/rqlite/sql
 # go.etcd.io/bbolt v1.4.3

Reply via email to