0 votes
202 views

Hi, I have a problem with the q3c_dist function, for some reason the jsqlparser throw a ParseException:

Error: IllegalArgumentException: net.sf.jsqlparser.JSQLParserException JSQLParserException: ParseException: Encountered "(" at line 1, column 98. Was expecting one of: <EOF> "ASC" ... "DESC" ... "LIMIT" ... "OFFSET" ... ";" ... "," ... "." ... "UNION" ...

Seems don't recognize that function because without these I dont have problems. The code for this :

ssql = '''SELECT * FROM decaps_dr1.object AS g WHERE q3c_join(10, 20, g.ra, g.dec, 0) ORDER BY q3c_dist(0, 0, 0, 0)'''

jobid = qc.query(sql=ssql, async_=True)

while qc.status(jobid) != 'COMPLETED':

         print(qc.status(jobid))

        print(qc.error(jobid))

       time.sleep(2)

The version of the datalab package :

noaodatalab               2.20.0 

Regards!

by paolosoto (120 points)
edited by 1970 | 202 views
I have detected that the problem is with the async_ flag. In sync mode doesn't exist the problem.

1 Answer

0 votes

Hi Paolo, thanks for reaching out, and apologies for the long response time.

Indeed, in async mode a Q3C functions such as q3c_dist() can currently not be used within ORDER BY. I you can live without it in an ORDER BY, the rest should work in async mode as well, e.g.:

ssql = '''SELECT * FROM decaps_dr1.object AS g WHERE q3c_join(13.92, -0.14, g.ra, g.dec, 0.01)'''
jobid = qc.query(sql=ssql, async_=True)

Note that the last argument to q3c_join() is the matching radius, i.e. it should not be zero as in your example. Also note that for your example coordinate ra/dec = 10/20 I don't seem to find any nearby matches, so I adjusted the example coordinates a bit in my example.

Best regards,

Robert

by datalab (20.7k points)

416 questions

434 answers

440 comments

636 users

Welcome to Data Lab Help Desk, where you can ask questions and receive answers from other members of the community.

Categories