Skip to content
  1. Jun 16, 2016
  2. Jun 13, 2016
  3. Jun 08, 2016
  4. May 25, 2016
    • gmantele's avatar
      [ADQL] Fix recursive replacement using SimpleReplaceHandler. · ad2acca3
      gmantele authored
      Before correction, if an ADQlObject (e.g. a function or a sub-query) contains
      another ADQLObject and that both (i.e. parent and child) are matching in a
      SimpleReplaceHandler and are asked to be replaced, only the parent
      seemed to have been replaced. However, the child has been replaced, but
      in the former instance of the parent ; and so its replacement is not
      visible in the final query.
      
      For instance:
      if all mathematical functions must be replaced by a dumb UDF named 'foo' in
      the ADQL query:
              "SELECT sqrt(abs(81)) FROM myTable"
      ,the result should be:
              "SELECT foo(foo(81)) FROM myTable"
      ,but before this correction it was:
              "SELECT foo(abs(81)) FROM myTable".
      ad2acca3
  5. Apr 20, 2016
  6. Apr 19, 2016
    • gmantele's avatar
      [TAP] Finish fixing the transaction management bug. · 5ac8f1fb
      gmantele authored
      See the commit bd621842,
      for the first part of the fix (which actually did not really
      fixed the problem: connections "idle in transaction" were
      still in the database ; the connection being inside an opened transaction,
      it generates lock issues in the database in addition of probably taking
      some memory resources).
      5ac8f1fb
  7. Apr 12, 2016
    • gmantele's avatar
      [TAP] New fix for the transaction management. · bd621842
      gmantele authored
      The transaction and Statement were closed too early before.
        - Fetching the row was not possible once the first bunch of fetched
      rows was over.
        - The problem of "statement is aborted" preventing the re-use of
      a same DB connection was apparently still there, but occurred less often.
      
        Now, any transaction potentially started in a DB connection is always
      closed after one of the public functions of JDBCConnection is called ;
      except executeQuery(ADQLQuery) whose the call MUST be wrapped inside a
      try...catch block in which DBConnection.cancel(true) MUST be called
      in case of error (in order to effectively end any started transaction).
      bd621842
  8. Mar 17, 2016
  9. Mar 04, 2016
    • gmantele's avatar
      [ADQL] Set a type to a query's resulting column when it is not originally a column. · 0003e343
      gmantele authored
      This is easily possible for concatenations, string constants and User Defined
      Functions having a FunctionDef. A new special datatype was needed for
      numeric functions and operations: UNKNOWN_NUMERIC. This special type
      can not be set with FunctionDef.parse(...) and it behaves exactly like the type
      UNKNOWN, except that DBType.isNumeric() returns true (as .isUnknown()).
      Thus, while writing the metadata of a result in TAP, nothing changes:
      an UNKNOWN_NUMERIC type will be processed similarly as an UNKNOWN type:
      to use the type returned from the database ResultSet or to set VARCHAR.
      (no modification of TAP was needed for that)
      0003e343
    • gmantele's avatar
      [ADQL] Fix identification of UDFs using a list of function definitions. · 475fcb65
      gmantele authored
      Functions whose some parameters are another function were not correctly
      identified: since the inner functions were not yet identified, their type
      was UNKNOWN and so it makes the identification of the parent function
      much easier since an UNKNOWN parameter is not checked. But, it was a
      problem if the parameter occurs to be finally of the wrong type.
      475fcb65
    • gmantele's avatar
      [ADQL] Return a not NULL name for a SelectItem containing a Concatenation · 09e81ed7
      gmantele authored
      (indeed, a Concatenation object has no name).
      09e81ed7
  10. Feb 10, 2016
  11. Feb 08, 2016
  12. Jan 29, 2016
  13. Jan 13, 2016
  14. Jan 12, 2016
  15. Dec 11, 2015
  16. Dec 04, 2015
  17. Dec 01, 2015
  18. Nov 19, 2015
    • gmantele's avatar
      [TAP] New feature: Examples endpoint. · f4f05986
      gmantele authored
      Can be enabled just by providing a file URI in the TAP configuration file using
      the property "examples". It is also possible to add manually a TAP resource
      whose the returned name must be "examples" like the new TAP resource is doing:
      tap.resource.Examples. This latter take a file URI as the TAP configuration
      file does. The referenced file must respect the DALI 1.0 or TAP Notes 1.0
      syntax. No check of the file is performed by the library ; it is up to the
      author of the referenced file (a XHTML/RDFa file) to write a correct "examples"
      endpoint content. Check out the examples provided on the GitHub repository in
      the directory examples/tap/examples_endpoint.
      f4f05986
  19. Nov 13, 2015
    • gmantele's avatar
      [TAP & UWS] 2 MAJOR BUGS FIXED (these bugs were affecting performances). · d9041712
      gmantele authored
      1) [TAP & UWS] ]MAJOR BUG FIX: The abortion of an SQL query is now correctly
      implemented. Before this fix, 2 mistakes prevented this clean abortion:
        a/ The thread was not cancelled because the SQL query execution was
      blocking the thread. Then the thread could not treat the interruption though
      it was flagged as interrupted.
        b/ The function UWSJob.isStopped() considered the job as stopped because
      the interrupted flag was set, even though the thread was still processing
      (and the database too). Because of that it returned true and the job phase
      was ABORTED though the thread was still running.
        NOW:
        a/ TAPJob calls the function Statement.cancel() (if supported) in order
      to cancel the SQL query execution properly inside the database.
        b/ The function UWSJob.isStopped() does not test any more the interrupted flag
      and returns true only if the thread is really stopped.
        IN BRIEF: It is now sure that a job in the phase ABORTED is really stopped
      (that's to say: thread stopped AND DB query execution stopped).
      
      2) [TAP] BUG FIX: When the writing of a result is abnormaly interrupted for any
      reason, the file which was being written is deleted.
      d9041712
  20. Oct 22, 2015
  21. Oct 16, 2015
  22. Sep 30, 2015
  23. Sep 10, 2015
  24. Sep 01, 2015
    • gmantele's avatar
      [ADQL,TAP] Fix bug (reported by G. Landais) in the understanding of UNKNOWN · 271e03cc
      gmantele authored
      types. The notion of "unknown type" is different in function of the target
      object:
        - a DBType and a FunctionDef have an unknown type if their function
          isUnknown() returns true. In such case, the other functions such as
      	isNumeric/String/Geometry() will return false.
        - an ADQLOperand (e.g. ADQLColumn) does NOT have a isUnknown() function.
          But if the type of the operand is unknown, its functions isNumeric(),
      	isString() and isGeometry() must ALL return true. Otherwise, just one of
      	these functions can return true.
      271e03cc
  25. Aug 27, 2015
    • gmantele's avatar
      [ADQL] Fix a Big Bug reported by M.Taylor and M.Demleitner: in ORDER BY, GROUP... · 13a2dc54
      gmantele authored
      [ADQL] Fix a Big Bug reported by M.Taylor and M.Demleitner: in ORDER BY, GROUP BY and USING only regular and delimited identifiers are accepted, not qualified column names.
      For instance: "SELECT table.column_name FROM table ORDER BY table.column_name" is wrong. We should instead write:
      "SELECT table.column_name FROM table ORDER BY column_name".
      "SELECT table.column_name AS mycol FROM table ORDER BY mycol" is also correct.
      Of course, for ORDER BY and GROUP BY, it is still possible to reference a column using its index in the SELECT clause.
      For instance: "SELECT table.column_name FROM table ORDER BY 1".
      13a2dc54
  26. Aug 25, 2015
    • gmantele's avatar
      [ADQL] Fix a bug reported by M. Taylor about qualified table name: · 84ede4bf
      gmantele authored
      when in a table definition (extension of DBTable) no schema is
      specified, it was possible to prefix the table name by a fake
      schema name ; it was checked at all:
      e.g. "SELECT * FROM no_schema.foo".
      This is no longer possible: if no schema is specified, no schema
      must be used in an ADQL query. But if one is specified, the schema
      prefix is optional.
      84ede4bf
  27. Aug 03, 2015
    • gmantele's avatar
      [ADQL,TAP] Fix 2 bugs notified by M.Taylor: · b49f8160
      gmantele authored
      1/ Bad parsing of UDF's parameter type or return type. Database types whose the
      name has a space (e.g. 'double precision') were not accepted. These type names
      should be accepted according to TAPRegExt.
      2/ An error message thrown by the DBChecker has been modified for the cases
      the type of a parameter is unknown. Before the returned type was NUMERIC. Now,
      it will be 'param' followed by the parameter index (e.g. 'param1').
      b49f8160
  28. Jul 31, 2015
    • gmantele's avatar
      [UWS,TAP] Fix parameters parsing in UWS (or Async in TAP): · 1234f1a1
      gmantele authored
      when the content-type was not exactly 'application/x-www-form-urlencoded'
      for normal POST requests, no parameter was read by the UWS/TAP library.
      This content-type test has now been modified from a strict equality to a
      startsWith test.
      (Note: This bug only concerned the form encoded requests,
      not the multipart ones)
      1234f1a1
  29. Jul 20, 2015
  30. Jul 08, 2015
  31. Jun 18, 2015