Thanks for looking into this, I see in the original example I passed in a
nested call of 28 replaces() this was the cutoff point where it would fail,
the following line has about 36 replaces() this fails for me:

replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(Transcript,
',',''),';',''),':',''),'[',''),']',''),'{',''),'}',''),'(',
''),')',''),'\',''),'/',''),'"',''),'_',''),'+',''),'=',''),
'£',''),'$',''),'€',''),'%',''),'^',''),'&',''),'*',''),'@',
''),'#',''),'”',''),'“',''),'…',''),'¬',''),'¦',''),'`',''),
'~',''),'|',''),'.',''),'!',''),'?',''),'
','')

I get the parser stack overflow exception at the point where I create the
index:

"CREATE INDEX RecordingsNoPunctuationPart1Idx ON Recordings({0});"

Or in FULL:

"CREATE INDEX RecordingsNoPunctuationPart1Idx ON Recordings(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(replace(replace(Transcript,
',',''),';',''),':',''),'[',''),']',''),'{',''),'}',''),'(',
''),')',''),'\',''),'/',''),'"',''),'_',''),'+',''),'=',''),
'£',''),'$',''),'€',''),'%',''),'^',''),'&',''),'*',''),'@',
''),'#',''),'”',''),'“',''),'…',''),'¬',''),'¦',''),'`',''),
'~',''),'|',''),'.',''),'!',''),'?',''),'
',''));"


*Brian Clifford*
Software Developer

On 3 August 2017 at 11:38, Richard Hipp <d...@sqlite.org> wrote:

> I am unable to reproduce the problem.  Do you have any additional
> hints on how to make this fail?
>
> The depth of the stack in the push-down automaton used by the parser
> is deliberately limited to 100 levels.  This is a feature, not a bug.
> See https://www.sqlite.org/compile.html#yystackdepth for additional
> information.
>
> On 8/3/17, Brian Clifford <brian.cliff...@thinksmartbox.com> wrote:
> > Hi,
> >
> > I've subscribed to the sqllite mailing list but am still awaiting
> > authorization.
> >
> > I'd like to report a bug I found with sqlite where I'm creating a
> function
> > index which consists of approx 36 nested calls to the replace() function
> > (to remove punctuation)
> >
> > I get a parser stackoverflow exception after about 28 nested calls.
> >
> > Below is the pseudo-code I use for creating my table and the function
> index
> > -------
> >
> > string _ReplacePunctuationFunctionPart =
> > "replace(replace(replace(replace(replace(replace(
> replace(replace(replace(replace(replace(replace(replace(replace(replace(
> replace(replace(replace(replace(replace(replace(replace(replace(replace(
> replace(replace(replace(Transcript,',',''),';',''),':'
> ,''),'[',''),']',''),'{',''),'}',''),'(',''),')',''),'\','')
> ,'/',''),'"',''),'_',''),'+',''),'=',''),'£',''),'$',''),'€'
> ,''),'%',''),'^',''),'&',''),'*',''),'@',''),'#',''),'”',''),'“',''),'
> > ','')"
> >
> >
> >  "CREATE TABLE \"Recordings\" (\"Id\" INTEGER PRIMARY KEY AUTOINCREMENT
> NOT
> > NULL, \"Transcript\" TEXT NOT NULL COLLATE NOCASE, \"Mp3FileName\" TEXT
> NOT
> > NULL UNIQUE, \"Label\" TEXT);";
> >  "CREATE UNIQUE INDEX RecordingsMp3Index ON Recordings(Mp3FileName);";
> >  "CREATE INDEX RecordingsTextIndex ON Recordings(Transcript);";
> >  string.Format("CREATE INDEX RecordingsNoPunctuationIdx ON
> > Recordings({0});", _ReplacePunctuationFunctionPart);
> >
> >  .... SELECT ....
> >
> >  string.Format("SELECT Id, {0} as 'TranscriptNoPunctuation' FROM
> > Recordings;", _ReplacePunctuationFunctionPart);
> >
> > ------
> >
> > regards,
> >
> > *Brian Clifford*
> > Software Developer
> >
> > --
> >
> >
> > <http://www.thinksmartbox.com>
> >
> > www.thinksmartbox.com
> >
> > Facebook <https://www.facebook.com/thinksmartbox>  Twitter
> > <https://twitter.com/ThinkSmartbox>  LinkedIn
> > <https://www.linkedin.com/company/smartbox-assistive-technology>
> YouTube
> > <https://www.youtube.com/user/SmartboxAT>
> >
> > Smartbox Assistive Technology, Ysobel House, Enigma Commercial Centre,
> > Sandys
> > Road, Malvern, WR14 1JJ
> >
> > Tel: +44 (0) 1684 578868
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@mailinglists.sqlite.org
> > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
>
>
> --
> D. Richard Hipp
> d...@sqlite.org
>

-- 


<http://www.thinksmartbox.com>

www.thinksmartbox.com

Facebook <https://www.facebook.com/thinksmartbox>  Twitter 
<https://twitter.com/ThinkSmartbox>  LinkedIn 
<https://www.linkedin.com/company/smartbox-assistive-technology>  YouTube 
<https://www.youtube.com/user/SmartboxAT>

Smartbox Assistive Technology, Ysobel House, Enigma Commercial Centre, Sandys 
Road, Malvern, WR14 1JJ

Tel: +44 (0) 1684 578868
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to