- Feb 22, 2017
-
-
gmantele authored
the automatic datatype detection was missing for CENTROID functions. -- Additionally, some JUnit test files of the `adql` package has been moved to the correct location.
-
- Feb 20, 2017
-
-
gmantele authored
-
- Feb 01, 2017
-
-
gmantele authored
Date and Time are converted into a string with the following resp. formats: 'yyyy-MM-dd' and 'HH:mm:ss'.
-
- Sep 20, 2016
-
-
gmantele authored
The "normal" JOIN: A JOIN B ON A.id = B.id JOIN C ON B.id = C.id is correctly interpreted as: ( (A JOIN B ON A.id = B.id) JOIN C ON B.id = C.id ) But with a NATURAL JOIN, the tree is mirrored: A NATURAL JOIN B NATURAL JOIN C gives: ( A NATURAL JOIN (B NATURAL JOIN C) ) instead of: ( (A NATURAL JOIN B) NATURAL JOIN C ) This is not a problem when the SQL translation is identical to the ADQL expression, but for some DBMS a conversion into a INNER JOIN ON is necessary and in this case we got the following SQL: A JOIN B JOIN C ON A.id = B.id ON B.id = C.id Which seems to work, but is syntactically strange. This commit should fix the generated tree. A "normal" JOIN and a NATURAL JOIN should now have the same form. A JUnit test has been added into TestADQLParser to check that: testJoinTree().
-
- Sep 14, 2016
-
- Jul 13, 2016
-
-
gmantele authored
sub-query. Without this information, it was impossible to resolve columns makingreference to sub-queries of the clause FROM. See the JUnit test case for a concrete example. (error raised by Hendrik Heinl - ARI/GAVO)
-
gmantele authored
column in TAP_SCHEMA. Such names are normalized (without any prefix and without double quotes) when getADQLName() is called, but are returned just trimmed by getRawName(). This latter is just used by TAPMetadata when writing the XML description of all TAP tables.
-
gmantele authored
in DBType.DBDatatype (for UNKNOWN and UNKNOWN_NUMERIC). This reset is performed after each JUnit setting a special custom value (otherwise it prevents other JUnit to run correctly)
-
- Jun 13, 2016
-
-
gmantele authored
-
- May 25, 2016
-
-
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".
-
- Apr 20, 2016
-
-
gmantele authored
-
- Mar 17, 2016
-
-
gmantele authored
deals with NATURAL JOINs and JOINs using the keyword USING so that being supported by SQL Server. Basically, they are translated as a list of ON conditions. Warning: This translator is just guaranteed to solve the NATURAL and USING issue. Support for datatypes conversion and case sensitivity has to be reviewed. Besides no geometrical function is translated for SQL Server.
-
- Mar 04, 2016
-
-
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)
-
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.
-
- Feb 08, 2016
-
-
gmantele authored
with a constructor (ServiceConnection, Properties)).
-
- Dec 11, 2015
-
-
gmantele authored
dates with no seconds, but also with no day or month. Representations in days of year or weeks of year were not possible as well. Check out the ISO8601Format class' Javadoc for more details.
-
- Dec 01, 2015
-
-
gmantele authored
functions must be casted into NUMERIC. Otherwise Postgres rejects the query.
-
- Oct 22, 2015
- Sep 30, 2015
-
-
gmantele authored
Now, all occurences of ' are replaced by '' in the SQL translation.
-
- Sep 01, 2015
-
-
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.
-
- Aug 27, 2015
-
-
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".
-
- Aug 25, 2015
-
-
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.
-
- Aug 03, 2015
-
-
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').
-
- Jul 20, 2015
-
-
gmantele authored
(merge with branch 'unknownFctType')
-
- Jun 16, 2015
-
-
gmantele authored
[ADQL] Fix the ADQL DEBUG mode ; now ADQLParser.setParser(boolean) is doing what it is supposed to do.
-
- Jun 09, 2015
-
-
gmantele authored
-
- Jun 08, 2015
-
-
gmantele authored
[ADQL] Fix merge side-effects (e.g. '' were not translated any more as a single ' ; NullPointerExceptions when building positions) + transform the test main class for positions into a JUnit test case + Fix some position mistakes. (note: a tabulation character seems to be interpreted by JavaCC as 8 characters)
-
gmantele authored
-
- Apr 22, 2015
-
-
gmantele authored
-
- Apr 13, 2015
-
-
gmantele authored
[TAP] Add Javadoc for all TAP configuration file related classes + Improve the function ConfigurableServiceConnection.getFile(...) + Set the default value of limits/durations/periods to the maximum value if the new maximum value is less than the current default value.
-
gmantele authored
[TAP] Incorrect setting of the backup frequency. The documentation was also incomplete about this property, but also wrong concerning the property backup_mode which is actually backup_by_user.
-
- Mar 26, 2015
-
-
gmantele authored
[TAP] Add the possibility to set the FetchSize on a DB Statement for the execution of ADQL queries. It is also possible to set a fetchSize different for synchronous and asynchronous queries.
-
- Mar 11, 2015
-
-
gmantele authored
[TAP] Add a configuration file property: 'coordinate_systems'. It lets list all allowed coordinate systems. By default, the list is empty, meaning that any is allowed.
-
- Mar 04, 2015
-
-
gmantele authored
[TAP] Change the default value for output and upload limits ; only negative value must mean 'no restriction' ; 0 must be a normal allowed value.
-
- Feb 27, 2015
-
-
gmantele authored
[TAP] Allow the TAP configuration file properties 'file_root_path' and 'metadata_file' be file pathes relative to WebContent.
-
- Feb 20, 2015
-
-
gmantele authored
[ALL] Update ANT build scripts to test all existings JUnit tests before compiling. In case of error, the compilation does not complete.
-
- Feb 19, 2015
-
-
gmantele authored
[TAP] Add a property in the configuration file to set a custom TAPFactory (in replacement of ConfigurableTAPFactory.
-
- Feb 18, 2015
-
-
gmantele authored
[TAP] Add a 3rd possibility to set metadata in the TAP configuration file: give an extension of TAPMetadata having either an empty constructor or a constructor with a UWSFileManager, a TAPFactory and a TAPLog. & Rename function TAPConfiguration.isClassPath(String) into TAPConfiguration.isClassName(String).
-
gmantele authored
[TAP] Add property to add/replace TAP resources & Add the tool function TAPConfiguration.newInstance(...).
-