Sqlitebrowser: Entering an SQL statement with extended characters, and selecting a blank line in Execute SQL tab confuses what SQL is executed

Created on 30 Jun 2020  ·  3Comments  ·  Source: sqlitebrowser/sqlitebrowser

Details for the issue

What did you do?

Executed a highlighted statement in the Execute SQL tab.

What did you expect to see?

The executed SQL executed.

What did you see instead?

An error where additional text was executed, creating an invalid query.

Useful extra information

Here is a screencast.
http://somup.com/cY1v11QgR1

So my SQL tab contained a number of different SQL statements, and I could select the one I wanted via highlighting, and pressing F5. This worked, but if an extra line was selected, then some characters were 'stolen' from the line following the highlighted section.
I assume this is due to CRLF / CR / LF line count issues.

Edit: OK, I just tried this is a nightly, and it worked. Tried it in a new tab, and it worked. It was the query which was causing it. If you copy the text from #2310, it was the Korean text in the middle of the queries, throwing it out. Unsure why - I guess extended characters counts as multiple characters, throwing out the counts?
Query: insert into keyValues (section,key) values ('Korean','한국어');

So, a bit of an edge case, but I'm sure it'll bite someone at some point, so in the meantime (if not easy to fix) do we add a 'known issue' Wiki entry?

The info below often helps, please fill it out if you're able to. :)

What operating system are you using?

  • [x] Windows: ( _version:_10 ___ )
  • [ ] Linux: ( _distro:_ ___ )
  • [ ] macOS: ( _version:_ ___ )
  • [ ] Other: ___

What is your DB4S version?

  • [x] 3.12.0
  • [ ] 3.11.x
  • [ ] Other: ___

Did you also

bug

Most helpful comment

Should be fixed now :smile: @chrisjlocke Can you try the next nightly build and double check?

There was no parsing problem but just a confusion of how to specify the start of the selection: QScintilla gives us the position in bytes but we were treating it as the number of characters. For single-byte characters this makes no difference but for multi-byte character it sets off the position.

All 3 comments

@MKleusberg Thoughts? Seems like a parsing problem, which is generally your wheelhouse? :smile:

Should be fixed now :smile: @chrisjlocke Can you try the next nightly build and double check?

There was no parsing problem but just a confusion of how to specify the start of the selection: QScintilla gives us the position in bytes but we were treating it as the number of characters. For single-byte characters this makes no difference but for multi-byte character it sets off the position.

Confirmed this now works with no issues. Thanks @MKleusberg 👍

Was this page helpful?
0 / 5 - 0 ratings

Related issues

MrunaliniShiraganvi picture MrunaliniShiraganvi  ·  3Comments

crash1013 picture crash1013  ·  4Comments

tmplinshi picture tmplinshi  ·  3Comments

ch728 picture ch728  ·  4Comments

botist picture botist  ·  3Comments