I have a J application that scans directories of TAB delimited CSV files
created
by a Python program that downloads image metadata from
https://conceptcontrol.smugmug.com/
The J app consolidates all the CSV data into one compact sqlite database.

This application is complicated so I expected issues with moving to 9.01.
The app didn't
run in 9.01 failing on sqlite insert statements.  I tried again today
aiming to find out why things
work in 8.07 but fail in 9.01.

The app fails in the following loop and it appears to have nothing to do
with sqlite or the sqlite addon.
Something strange is happening in the 9.01 for loop. The problem manifests
in the line:

seq=. (#pos)#<:1.0 NB. insure integer datatype (does not work in 9.01 -
produces floating instead of integer)


NB. insert galleries one at a time - allows better debugging

idg=. ThumbName i. AlbumName

tab=. 'ThumbnailGallery'

cln=. 0 {"1 sqldict__dt tab


for_gal. ~.AlbumName do.


pos=. I. gal=AlbumName

idGal=. pos { idg

idThb=. pos { LocalThumbID


seq=. (#pos)#<:1.0 NB. insure integer datatype


NB. insert gallery data

try. rc=. sqlinsert__dt tab;cln;<idGal;idThb;seq catcht. rc=. _1 end.


if. 0 ~: rc do. smoutput 'failure inserting -> ',(4 s: gal),' trying next
gallery ...' end.


end.

 The assignment

seq=. (#pos)#<:1.0 NB. insure integer datatype


seems to break out of the loop - after running this line in 9.01 seq is not
set and shows

as a value error in 9.01 - it works fine in 8.07


There may be some side effect of running sqlite addon verbs in a for loop.


I will keep investigating and see if I can code a work around but there are
issues for sqlite addon apps in J 9.01


John Baker







-- 
John D. Baker
bakerj...@gmail.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to