SQLite Forum

"ON clause references tables to its right"
Login

"ON clause references tables to its right"

(1) By anonymous on 2021-02-03 13:39:43 [link]

I have a long SQL statement 1,561 lines long (several SQL statements delimited by ;. 

It executes fine in the CLI but not within a programmatic call to sqlite3_exec using C#: it gives the error message in the title.

There is NO 'on' clause.

Any hints as regards the cause of the error would be a great help.

My guess is that this is to do with UTF encoding ... but it is just a guess.

I can't post the script  as it would be meaningless without the database and I've no way of sharing the database.

(2) By Richard Hipp (drh) on 2021-02-03 14:06:11 in reply to 1 [link]

> It executes fine in the CLI but not within a programmatic call to sqlite3_exec using C#: it gives the error

Are the CLI and your C# application running the same SQLite version?
What does "SELECT sqlite_source_id();" say for each?

(3) By anonymous on 2021-02-03 14:09:42 in reply to 1 [link]

Found the error message in sqlite.c lines [145646-145650]

```
/* ON clause terms may not be used with an index
                       ** on left table of a LEFT JOIN.  Ticket #3015 */
    if( (prereqAll>>1)>=x ){
      sqlite3ErrorMsg(pParse, "ON clause references tables to its right");
      return;
```

(4) By anonymous on 2021-02-03 14:17:19 in reply to 2

>What does "SELECT sqlite_source_id();" say for each?

The CLI

```
sqlite_source_id()
------------------------------------------------------------------------------------
2020-12-01 16:14:00 a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b
```

C# application

```
 sqlite_source_id()
 2020-12-01 16:14:00 a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b

```

(5) By anonymous on 2021-02-03 21:47:40 in reply to 2 [link]

Is there a limit to the length of the SQL statement that can be used with sqlite3_exec?

(6) By Richard Hipp (drh) on 2021-02-03 22:19:17 in reply to 5 [link]

Yes.  <https://SQLite.org/limits.html>