From 27990d865b698ba8552242ed489be985dd2f5fba Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 22 Jan 2019 15:21:46 +0100 Subject: [PATCH] [#6450] Javadoc should reference JDK 11 Javadoc --- .../main/resources/org/jooq/web/html-util.xsl | 27 ++++-- .../resources/org/jooq/web/manual-3.10.xml | 66 +++++++-------- .../resources/org/jooq/web/manual-3.11.xml | 82 +++++++++---------- .../resources/org/jooq/web/manual-3.12.xml | 82 +++++++++---------- .../resources/org/jooq/web/manual-3.2.xml | 6 +- .../resources/org/jooq/web/manual-3.3.xml | 6 +- .../resources/org/jooq/web/manual-3.4.xml | 24 +++--- .../resources/org/jooq/web/manual-3.5.xml | 26 +++--- .../resources/org/jooq/web/manual-3.6.xml | 30 +++---- .../resources/org/jooq/web/manual-3.7.xml | 32 ++++---- .../resources/org/jooq/web/manual-3.8.xml | 40 ++++----- .../resources/org/jooq/web/manual-3.9.xml | 38 ++++----- 12 files changed, 237 insertions(+), 222 deletions(-) diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/html-util.xsl b/jOOQ-manual/src/main/resources/org/jooq/web/html-util.xsl index 699fdf6908..55f1132223 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/html-util.xsl +++ b/jOOQ-manual/src/main/resources/org/jooq/web/html-util.xsl @@ -143,12 +143,15 @@ - http://www.jooq.org/javadoc/ + https://www.jooq.org/javadoc/ .x/ .html + @@ -167,13 +170,25 @@ - - http://download.oracle.com/javase/8/docs/api/ + + https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/ .html - - - + + + + + https://docs.oracle.com/en/java/javase/11/docs/api/java.xml/ + + .html + + + + + https://docs.oracle.com/en/java/javase/11/docs/api/java.base/ + + .html + diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml index c4b4b7fa29..6524490de2 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml @@ -3998,9 +3998,9 @@ author.store(); // The behaviour of this store call is governed by the updatable

    -
  • queryTimeout: Corresponds to or
  • -
  • maxRows: Corresponds to or
  • -
  • fetchSize: Corresponds to or
  • +
  • queryTimeout: Corresponds to or
  • +
  • maxRows: Corresponds to or
  • +
  • fetchSize: Corresponds to or

@@ -4431,7 +4431,7 @@ FROM "a"

Recursive common table expressions

- The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

@@ -5154,7 +5154,7 @@ ORDER BY first_name DESC

- Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -5963,7 +5963,7 @@ VALUES ( .execute();

- The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

@@ -7353,7 +7353,7 @@ field(select(inline(1).as("a")));]]>

- These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

@@ -9273,7 +9273,7 @@ AND language_id = 1]]>

- jOOQ knows a simple API called , which translates a to a : + jOOQ knows a simple API called , which translates a to a :

books2 = DSL.using(configuration).fetchByExample(book);]]>

- The latter API call makes use of the convenience API . + The latter API call makes use of the convenience API .

@@ -9556,7 +9556,7 @@ field("replace(substr(quote(zeroblob(({0} + 1) / 2)), 3, {0}), '0', {1})", Strin // argument "string" is used only once: \-----------------------------/]]>

- For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

a = val("a"); @@ -9601,7 +9601,7 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar SQL Parser

- A full-fledged SQL parser is available from and from (see ). + A full-fledged SQL parser is available from and from (see ).

@@ -9616,7 +9616,7 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar

- With this parser, the whole set of jOOQ functionality will now also be made available to anyone who is not using jOOQ directly, including JDBC and/or JPA users, e.g. through the , which proxies all JDBC Connection calls to the jOOQ parser before forwarding them to the database, or through the API, which allows for a more low-level access to the parser directly, e.g. for tool building on top of jOOQ. + With this parser, the whole set of jOOQ functionality will now also be made available to anyone who is not using jOOQ directly, including JDBC and/or JPA users, e.g. through the , which proxies all JDBC Connection calls to the jOOQ parser before forwarding them to the database, or through the API, which allows for a more low-level access to the parser directly, e.g. for tool building on top of jOOQ.

@@ -9630,14 +9630,14 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar

    -
  • : This produces the type, containing a batch of queries.
  • -
  • : This produces the type, containing a single query.
  • -
  • : This produces the type, containing a single query.
  • -
  • : This produces the type, containing a table expression.
  • -
  • : This produces the type, containing a field expression.
  • -
  • : This produces the type, containing a row expression.
  • -
  • : This produces the type, containing a condition expression.
  • -
  • : This produces the type, containing a name expression.
  • +
  • : This produces the type, containing a batch of queries.
  • +
  • : This produces the type, containing a single query.
  • +
  • : This produces the type, containing a single query.
  • +
  • : This produces the type, containing a table expression.
  • +
  • : This produces the type, containing a field expression.
  • +
  • : This produces the type, containing a row expression.
  • +
  • : This produces the type, containing a condition expression.
  • +
  • : This produces the type, containing a name expression.

@@ -9787,7 +9787,7 @@ AUTHOR.TITLE

Creating custom names

- Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
  • - Per query locally, by using the method. + Per query locally, by using the method.
  • Per value locally, by using methods. @@ -10037,8 +10037,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

      -
    • they can using the method
    • -
    • they can using the method
    • +
    • they can using the method
    • +
    • they can using the method

    @@ -10055,7 +10055,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

    - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

    • It provides some information about the "state" of SQL rendering.
    • @@ -10198,7 +10198,7 @@ having count(*) = 2]]> Variable binding

      - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

      • It provides some information about the "state" of the variable binding in process.
      • @@ -10791,7 +10791,7 @@ for (int i = 0; i < result.size(); i++)

        - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

        All JDBC API is one-based

        @@ -11192,7 +11192,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

        - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

        query = create.selectOne().keepStatement(true)) { }]]>

        - The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly. + The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly.

        @@ -13496,7 +13496,7 @@ bookDao.delete(book);]]>

        • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
        • -
        • You can call JDBC's , and other methods on your JDBC driver.
        • +
        • You can call JDBC's , and other methods on your JDBC driver.
        • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
        • You can use a JTA-compliant Java EE transaction manager from your container.
        @@ -13562,7 +13562,7 @@ public interface TransactionalCallable { }]]>

        - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

        Rollbacks

        @@ -14012,7 +14012,7 @@ update t set x = 1;
      • MockFileDatabase comments are any line with a leading hash ("#") symbol. They are ignored when reading the file
      • SQL comments are part of the SQL statement
      • A SQL statement always starts on a new line and ends with a semi colon (;), which is the last symbol on the line (apart from whitespace)
      • -
      • If the statement has a result set, it immediately succeeds the SQL statement and is prefixed by angle brackets and a whitespace ("> "). Any format that is accepted by is accepted.
      • +
      • If the statement has a result set, it immediately succeeds the SQL statement and is prefixed by angle brackets and a whitespace ("> "). Any format that is accepted by is accepted.
      • The statement is always terminated by the row count, which is prefixed by an at symbol, the "rows" keyword, and a double colon ("@ rows:").
      @@ -14044,7 +14044,7 @@ Result result = create.select(inline("C")).fetch();]]> Parsing Connection

      - As previously discussed in the , jOOQ exposes a full-fledged SQL parser through , and often more interestingly: Through . + As previously discussed in the , jOOQ exposes a full-fledged SQL parser through , and often more interestingly: Through .

      diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml index 465ca1de0f..2e6a983af4 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml @@ -3998,9 +3998,9 @@ author.store(); // The behaviour of this store call is governed by the updatable

        -
      • queryTimeout: Corresponds to or
      • -
      • maxRows: Corresponds to or
      • -
      • fetchSize: Corresponds to or
      • +
      • queryTimeout: Corresponds to or
      • +
      • maxRows: Corresponds to or
      • +
      • fetchSize: Corresponds to or

      @@ -4431,7 +4431,7 @@ FROM "a"

      Recursive common table expressions

      - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

      @@ -4563,7 +4563,7 @@ Select select2 = create.selectOne().fetch();]]>

      SELECT *

      - jOOQ supports the asterisk operator in projections both as a qualified asterisk (through ) and as an unqualified asterisk (through ). It is also possible to omit the projection entirely, in case of which an asterisk may appear in generated SQL, if not all column names are known to jOOQ. + jOOQ supports the asterisk operator in projections both as a qualified asterisk (through ) and as an unqualified asterisk (through ). It is also possible to omit the projection entirely, in case of which an asterisk may appear in generated SQL, if not all column names are known to jOOQ.

      - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

      Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -6108,7 +6108,7 @@ VALUES ( .execute();

      - The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

      @@ -7529,7 +7529,7 @@ field(select(inline(1).as("a")));]]>

      - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

      @@ -7632,7 +7632,7 @@ Field field2 = val("1").coerce(Integer.class);]]>

      - To accommodate most use-cases jOOQ 3.11 introduced the type, which can be attached to a through , or to a through , for example: + To accommodate most use-cases jOOQ 3.11 introduced the type, which can be attached to a through , or to a through , for example:

      @@ -9488,7 +9488,7 @@ AND language_id = 1]]>

    - jOOQ knows a simple API called , which translates a to a : + jOOQ knows a simple API called , which translates a to a :

    books2 = DSL.using(configuration).fetchByExample(book);]]>

    - The latter API call makes use of the convenience API . + The latter API call makes use of the convenience API .

    @@ -9771,7 +9771,7 @@ field("replace(substr(quote(zeroblob(({0} + 1) / 2)), 3, {0}), '0', {1})", Strin // argument "string" is used only once: \-----------------------------/]]>

    - For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

    a = val("a"); @@ -9816,7 +9816,7 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar SQL Parser

    - A full-fledged SQL parser is available from and from (see ). + A full-fledged SQL parser is available from and from (see ).

    @@ -9831,7 +9831,7 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar

    - With this parser, the whole set of jOOQ functionality will now also be made available to anyone who is not using jOOQ directly, including JDBC and/or JPA users, e.g. through the , which proxies all JDBC Connection calls to the jOOQ parser before forwarding them to the database, or through the API, which allows for a more low-level access to the parser directly, e.g. for tool building on top of jOOQ. + With this parser, the whole set of jOOQ functionality will now also be made available to anyone who is not using jOOQ directly, including JDBC and/or JPA users, e.g. through the , which proxies all JDBC Connection calls to the jOOQ parser before forwarding them to the database, or through the API, which allows for a more low-level access to the parser directly, e.g. for tool building on top of jOOQ.

    @@ -9845,14 +9845,14 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar

      -
    • : This produces the type, containing a batch of queries.
    • -
    • : This produces the type, containing a single query.
    • -
    • : This produces the type, containing a single query.
    • -
    • : This produces the type, containing a table expression.
    • -
    • : This produces the type, containing a field expression.
    • -
    • : This produces the type, containing a row expression.
    • -
    • : This produces the type, containing a condition expression.
    • -
    • : This produces the type, containing a name expression.
    • +
    • : This produces the type, containing a batch of queries.
    • +
    • : This produces the type, containing a single query.
    • +
    • : This produces the type, containing a single query.
    • +
    • : This produces the type, containing a table expression.
    • +
    • : This produces the type, containing a field expression.
    • +
    • : This produces the type, containing a row expression.
    • +
    • : This produces the type, containing a condition expression.
    • +
    • : This produces the type, containing a name expression.

    @@ -10027,7 +10027,7 @@ AUTHOR.TITLE

    Creating custom names

    - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

    Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
  • - Per query locally, by using the method. + Per query locally, by using the method.
  • Per value locally, by using methods. @@ -10277,8 +10277,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

      -
    • they can using the method
    • -
    • they can using the method
    • +
    • they can using the method
    • +
    • they can using the method

    @@ -10295,7 +10295,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

    - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

    • It provides some information about the "state" of SQL rendering.
    • @@ -10438,7 +10438,7 @@ having count(*) = 2]]> Variable binding

      - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

      • It provides some information about the "state" of the variable binding in process.
      • @@ -11022,7 +11022,7 @@ for (int i = 0; i < result.size(); i++)

        - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

        All JDBC API is one-based

        @@ -11423,7 +11423,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

        - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

        query = create.selectOne().keepStatement(true)) { }]]>

        - The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly. + The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly.

        @@ -13727,7 +13727,7 @@ bookDao.delete(book);]]>

        • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
        • -
        • You can call JDBC's , and other methods on your JDBC driver.
        • +
        • You can call JDBC's , and other methods on your JDBC driver.
        • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
        • You can use a JTA-compliant Java EE transaction manager from your container.
        @@ -13793,7 +13793,7 @@ public interface TransactionalCallable { }]]>

        - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

        Rollbacks

        @@ -14243,7 +14243,7 @@ update t set x = 1;
      • MockFileDatabase comments are any line with a leading hash ("#") symbol. They are ignored when reading the file
      • SQL comments are part of the SQL statement
      • A SQL statement always starts on a new line and ends with a semi colon (;), which is the last symbol on the line (apart from whitespace)
      • -
      • If the statement has a result set, it immediately succeeds the SQL statement and is prefixed by angle brackets and a whitespace ("> "). Any format that is accepted by is accepted.
      • +
      • If the statement has a result set, it immediately succeeds the SQL statement and is prefixed by angle brackets and a whitespace ("> "). Any format that is accepted by is accepted.
      • The statement is always terminated by the row count, which is prefixed by an at symbol, the "rows" keyword, and a double colon ("@ rows:").
      @@ -14275,7 +14275,7 @@ Result result = create.select(inline("C")).fetch();]]> Parsing Connection

      - As previously discussed in the , jOOQ exposes a full-fledged SQL parser through , and often more interestingly: Through . + As previously discussed in the , jOOQ exposes a full-fledged SQL parser through , and often more interestingly: Through .

      @@ -14375,7 +14375,7 @@ try (Connection c = DSL.using(configuration.derive(new MyDiagnosticsListener())) Too Many Rows

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14423,7 +14423,7 @@ try (Connection c = DSL.using(configuration.derive(new TooManyRows())) Too Many Columns

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14480,7 +14480,7 @@ try (Connection c = DSL.using(configuration.derive(new TooManyColumns())) Duplicate Statements

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14570,7 +14570,7 @@ void run(String sql) { Repeated statements

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14636,11 +14636,11 @@ try (Connection c = DSL.using(configuration.derive(new RepeatedStatement())) WasNull calls

      - The SPI methods handling these events are + The SPI methods handling these events are

      - This problem appears only when using the JDBC API directly, as both jOOQ and most ORMs abstract over this JDBC legacy correctly. In JDBC, when fetching a primitive types (and some types are available only in their primitive form), a subsequent call to is required, to see if the previous primitive type was really a NULL value, not a 0 or false value. + This problem appears only when using the JDBC API directly, as both jOOQ and most ORMs abstract over this JDBC legacy correctly. In JDBC, when fetching a primitive types (and some types are available only in their primitive form), a subsequent call to is required, to see if the previous primitive type was really a NULL value, not a 0 or false value.

      Why is it bad?

      diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml index ba189b11ca..754775c0f5 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml @@ -4166,9 +4166,9 @@ author.store(); // The behaviour of this store call is governed by the updatable

        -
      • queryTimeout: Corresponds to or
      • -
      • maxRows: Corresponds to or
      • -
      • fetchSize: Corresponds to or
      • +
      • queryTimeout: Corresponds to or
      • +
      • maxRows: Corresponds to or
      • +
      • fetchSize: Corresponds to or

      @@ -4599,7 +4599,7 @@ FROM "a"

      Recursive common table expressions

      - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

      @@ -4731,7 +4731,7 @@ Select select2 = create.selectOne().fetch();]]>

      SELECT *

      - jOOQ supports the asterisk operator in projections both as a qualified asterisk (through ) and as an unqualified asterisk (through ). It is also possible to omit the projection entirely, in case of which an asterisk may appear in generated SQL, if not all column names are known to jOOQ. + jOOQ supports the asterisk operator in projections both as a qualified asterisk (through ) and as an unqualified asterisk (through ). It is also possible to omit the projection entirely, in case of which an asterisk may appear in generated SQL, if not all column names are known to jOOQ.

      - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

      Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -6276,7 +6276,7 @@ VALUES ( .execute();

      - The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

      @@ -7698,7 +7698,7 @@ field(select(inline(1).as("a")));]]>

      - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

      @@ -7801,7 +7801,7 @@ Field field2 = val("1").coerce(Integer.class);]]>

      - To accommodate most use-cases jOOQ 3.11 introduced the type, which can be attached to a through , or to a through , for example: + To accommodate most use-cases jOOQ 3.11 introduced the type, which can be attached to a through , or to a through , for example:

      @@ -9699,7 +9699,7 @@ AND language_id = 1]]>

    - jOOQ knows a simple API called , which translates a to a : + jOOQ knows a simple API called , which translates a to a :

    books2 = DSL.using(configuration).fetchByExample(book);]]>

    - The latter API call makes use of the convenience API . + The latter API call makes use of the convenience API .

    @@ -9982,7 +9982,7 @@ field("replace(substr(quote(zeroblob(({0} + 1) / 2)), 3, {0}), '0', {1})", Strin // argument "string" is used only once: \-----------------------------/]]>

    - For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

    a = val("a"); @@ -10027,7 +10027,7 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar SQL Parser

    - A full-fledged SQL parser is available from and from (see ). + A full-fledged SQL parser is available from and from (see ).

    @@ -10042,7 +10042,7 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar

    - With this parser, the whole set of jOOQ functionality will now also be made available to anyone who is not using jOOQ directly, including JDBC and/or JPA users, e.g. through the , which proxies all JDBC Connection calls to the jOOQ parser before forwarding them to the database, or through the API, which allows for a more low-level access to the parser directly, e.g. for tool building on top of jOOQ. + With this parser, the whole set of jOOQ functionality will now also be made available to anyone who is not using jOOQ directly, including JDBC and/or JPA users, e.g. through the , which proxies all JDBC Connection calls to the jOOQ parser before forwarding them to the database, or through the API, which allows for a more low-level access to the parser directly, e.g. for tool building on top of jOOQ.

    @@ -10056,14 +10056,14 @@ condition("my_column IN ({0})", list(a, b, c)); // Using a single template ar

      -
    • : This produces the type, containing a batch of queries.
    • -
    • : This produces the type, containing a single query.
    • -
    • : This produces the type, containing a single query.
    • -
    • : This produces the type, containing a table expression.
    • -
    • : This produces the type, containing a field expression.
    • -
    • : This produces the type, containing a row expression.
    • -
    • : This produces the type, containing a condition expression.
    • -
    • : This produces the type, containing a name expression.
    • +
    • : This produces the type, containing a batch of queries.
    • +
    • : This produces the type, containing a single query.
    • +
    • : This produces the type, containing a single query.
    • +
    • : This produces the type, containing a table expression.
    • +
    • : This produces the type, containing a field expression.
    • +
    • : This produces the type, containing a row expression.
    • +
    • : This produces the type, containing a condition expression.
    • +
    • : This produces the type, containing a name expression.

    @@ -10238,7 +10238,7 @@ AUTHOR.TITLE

    Creating custom names

    - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

    Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
  • - Per query locally, by using the method. + Per query locally, by using the method.
  • Per value locally, by using methods. @@ -10488,8 +10488,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

      -
    • they can using the method
    • -
    • they can using the method
    • +
    • they can using the method
    • +
    • they can using the method

    @@ -10506,7 +10506,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

    - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

    • It provides some information about the "state" of SQL rendering.
    • @@ -10649,7 +10649,7 @@ having count(*) = 2]]> Variable binding

      - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

      • It provides some information about the "state" of the variable binding in process.
      • @@ -11242,7 +11242,7 @@ for (int i = 0; i < result.size(); i++)

        - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

        All JDBC API is one-based

        @@ -11643,7 +11643,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

        - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

        query = create.selectOne().keepStatement(true)) { }]]>

        - The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly. + The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly.

        @@ -13947,7 +13947,7 @@ bookDao.delete(book);]]>

        • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
        • -
        • You can call JDBC's , and other methods on your JDBC driver.
        • +
        • You can call JDBC's , and other methods on your JDBC driver.
        • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
        • You can use a JTA-compliant Java EE transaction manager from your container.
        @@ -14013,7 +14013,7 @@ public interface TransactionalCallable { }]]>

        - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

        Rollbacks

        @@ -14463,7 +14463,7 @@ update t set x = 1;
      • MockFileDatabase comments are any line with a leading hash ("#") symbol. They are ignored when reading the file
      • SQL comments are part of the SQL statement
      • A SQL statement always starts on a new line and ends with a semi colon (;), which is the last symbol on the line (apart from whitespace)
      • -
      • If the statement has a result set, it immediately succeeds the SQL statement and is prefixed by angle brackets and a whitespace ("> "). Any format that is accepted by is accepted.
      • +
      • If the statement has a result set, it immediately succeeds the SQL statement and is prefixed by angle brackets and a whitespace ("> "). Any format that is accepted by is accepted.
      • The statement is always terminated by the row count, which is prefixed by an at symbol, the "rows" keyword, and a double colon ("@ rows:").
      @@ -14542,7 +14542,7 @@ Result result = create.select(inline("A"), inline("B"), inline("C")).fetch(); Parsing Connection

      - As previously discussed in the , jOOQ exposes a full-fledged SQL parser through , and often more interestingly: Through . + As previously discussed in the , jOOQ exposes a full-fledged SQL parser through , and often more interestingly: Through .

      @@ -14642,7 +14642,7 @@ try (Connection c = DSL.using(configuration.derive(new MyDiagnosticsListener())) Too Many Rows

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14690,7 +14690,7 @@ try (Connection c = DSL.using(configuration.derive(new TooManyRows())) Too Many Columns

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14747,7 +14747,7 @@ try (Connection c = DSL.using(configuration.derive(new TooManyColumns())) Duplicate Statements

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14837,7 +14837,7 @@ void run(String sql) { Repeated statements

      - The SPI method handling this event is + The SPI method handling this event is

      @@ -14903,11 +14903,11 @@ try (Connection c = DSL.using(configuration.derive(new RepeatedStatement())) WasNull calls

      - The SPI methods handling these events are + The SPI methods handling these events are

      - This problem appears only when using the JDBC API directly, as both jOOQ and most ORMs abstract over this JDBC legacy correctly. In JDBC, when fetching a primitive types (and some types are available only in their primitive form), a subsequent call to is required, to see if the previous primitive type was really a NULL value, not a 0 or false value. + This problem appears only when using the JDBC API directly, as both jOOQ and most ORMs abstract over this JDBC legacy correctly. In JDBC, when fetching a primitive types (and some types are available only in their primitive form), a subsequent call to is required, to see if the previous primitive type was really a NULL value, not a 0 or false value.

      Why is it bad?

      diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.2.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.2.xml index cfc51d3ad3..3d99d17ad1 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.2.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.2.xml @@ -4652,7 +4652,7 @@ field(select(inline(1).as("a")));]]>

      - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

      @@ -6909,7 +6909,7 @@ WHERE LAST_NAME = :lastName]]> Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
    • - Per query locally, by using the method. + Per query locally, by using the method.
    • Per value locally, by using methods. @@ -7374,7 +7374,7 @@ for (int i = 0; i < result.size(); i++)

      - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

      All JDBC API is one-based

      diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.3.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.3.xml index 83df47fd3c..03cbfabd64 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.3.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.3.xml @@ -5330,7 +5330,7 @@ field(select(inline(1).as("a")));]]>

      - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

      @@ -7587,7 +7587,7 @@ WHERE LAST_NAME = :lastName]]> Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
    • - Per query locally, by using the method. + Per query locally, by using the method.
    • Per value locally, by using methods. @@ -8192,7 +8192,7 @@ for (int i = 0; i < result.size(); i++)

      - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

      All JDBC API is one-based

      diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.4.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.4.xml index 4aa30cedfa..07a9b6d90b 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.4.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.4.xml @@ -3852,7 +3852,7 @@ FROM "a"

      Recursive common table expressions

      - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

      @@ -4528,7 +4528,7 @@ ORDER BY first_name DESC

      - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

      Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -6226,7 +6226,7 @@ field(select(inline(1).as("a")));]]>

      - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

      @@ -8385,7 +8385,7 @@ AUTHOR.TITLE

      Creating custom names

      - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

      Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
    • - Per query locally, by using the method. + Per query locally, by using the method.
    • Per value locally, by using methods. @@ -8619,8 +8619,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

        -
      • they can using the method
      • -
      • they can using the method
      • +
      • they can using the method
      • +
      • they can using the method

      @@ -8637,7 +8637,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

      - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

      • It provides some information about the "state" of SQL rendering.
      • @@ -8780,7 +8780,7 @@ having count(*) = 2]]> Variable binding

        - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

        • It provides some information about the "state" of the variable binding in process.
        • @@ -9115,7 +9115,7 @@ for (int i = 0; i < result.size(); i++)

          - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

          All JDBC API is one-based

          @@ -11644,7 +11644,7 @@ bookDao.delete(book);]]>

          • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
          • -
          • You can call JDBC's , and other methods on your JDBC driver.
          • +
          • You can call JDBC's , and other methods on your JDBC driver.
          • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
          • You can use a JTA-compliant Java EE transaction manager from your container.
          @@ -11710,7 +11710,7 @@ public interface TransactionalCallable { }]]>

          - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

          Rollbacks

          diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.5.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.5.xml index eec27580f1..3b2f710c5f 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.5.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.5.xml @@ -4052,7 +4052,7 @@ FROM "a"

          Recursive common table expressions

          - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

          @@ -4732,7 +4732,7 @@ ORDER BY first_name DESC

          - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

          Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -6610,7 +6610,7 @@ field(select(inline(1).as("a")));]]>

          - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

          @@ -8782,7 +8782,7 @@ AUTHOR.TITLE

          Creating custom names

          - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

          Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
        • - Per query locally, by using the method. + Per query locally, by using the method.
        • Per value locally, by using methods. @@ -9016,8 +9016,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

            -
          • they can using the method
          • -
          • they can using the method
          • +
          • they can using the method
          • +
          • they can using the method

          @@ -9034,7 +9034,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

          - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

          • It provides some information about the "state" of SQL rendering.
          • @@ -9177,7 +9177,7 @@ having count(*) = 2]]> Variable binding

            - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

            • It provides some information about the "state" of the variable binding in process.
            • @@ -9512,7 +9512,7 @@ for (int i = 0; i < result.size(); i++)

              - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

              All JDBC API is one-based

              @@ -9904,7 +9904,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

              - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

              • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
              • -
              • You can call JDBC's , and other methods on your JDBC driver.
              • +
              • You can call JDBC's , and other methods on your JDBC driver.
              • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
              • You can use a JTA-compliant Java EE transaction manager from your container.
              @@ -12144,7 +12144,7 @@ public interface TransactionalCallable { }]]>

              - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

              Rollbacks

              diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.6.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.6.xml index 586ce26ce8..1a49a13e0f 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.6.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.6.xml @@ -4057,7 +4057,7 @@ FROM "a"

              Recursive common table expressions

              - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

              @@ -4737,7 +4737,7 @@ ORDER BY first_name DESC

              - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

              Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -5494,7 +5494,7 @@ VALUES ( .execute();

              - The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

              @@ -6730,7 +6730,7 @@ field(select(inline(1).as("a")));]]>

              - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

              @@ -8869,7 +8869,7 @@ field("replace(substr(quote(zeroblob(({0} + 1) / 2)), 3, {0}), '0', {1})", Strin // argument "string" is used only once: \-----------------------------/]]>

              - For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

              a = val("a"); @@ -8948,7 +8948,7 @@ AUTHOR.TITLE

              Creating custom names

              - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

              Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
            • - Per query locally, by using the method. + Per query locally, by using the method.
            • Per value locally, by using methods. @@ -9198,8 +9198,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

                -
              • they can using the method
              • -
              • they can using the method
              • +
              • they can using the method
              • +
              • they can using the method

              @@ -9216,7 +9216,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

              - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

              • It provides some information about the "state" of SQL rendering.
              • @@ -9359,7 +9359,7 @@ having count(*) = 2]]> Variable binding

                - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

                • It provides some information about the "state" of the variable binding in process.
                • @@ -9943,7 +9943,7 @@ for (int i = 0; i < result.size(); i++)

                  - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

                  All JDBC API is one-based

                  @@ -10340,7 +10340,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

                  - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

                  • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
                  • -
                  • You can call JDBC's , and other methods on your JDBC driver.
                  • +
                  • You can call JDBC's , and other methods on your JDBC driver.
                  • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
                  • You can use a JTA-compliant Java EE transaction manager from your container.
                  @@ -12580,7 +12580,7 @@ public interface TransactionalCallable { }]]>

                  - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

                  Rollbacks

                  diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.7.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.7.xml index a398619227..12b29afc7c 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.7.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.7.xml @@ -4224,7 +4224,7 @@ FROM "a"

                  Recursive common table expressions

                  - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

                  @@ -4947,7 +4947,7 @@ ORDER BY first_name DESC

                  - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

                  Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -5708,7 +5708,7 @@ VALUES ( .execute();

                  - The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

                  @@ -6994,7 +6994,7 @@ field(select(inline(1).as("a")));]]>

                  - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

                  @@ -9141,7 +9141,7 @@ field("replace(substr(quote(zeroblob(({0} + 1) / 2)), 3, {0}), '0', {1})", Strin // argument "string" is used only once: \-----------------------------/]]>

                  - For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

                  a = val("a"); @@ -9220,7 +9220,7 @@ AUTHOR.TITLE

                  Creating custom names

                  - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

                  Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
                • - Per query locally, by using the method. + Per query locally, by using the method.
                • Per value locally, by using methods. @@ -9470,8 +9470,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

                    -
                  • they can using the method
                  • -
                  • they can using the method
                  • +
                  • they can using the method
                  • +
                  • they can using the method

                  @@ -9488,7 +9488,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

                  - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

                  • It provides some information about the "state" of SQL rendering.
                  • @@ -9631,7 +9631,7 @@ having count(*) = 2]]> Variable binding

                    - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

                    • It provides some information about the "state" of the variable binding in process.
                    • @@ -10215,7 +10215,7 @@ for (int i = 0; i < result.size(); i++)

                      - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

                      All JDBC API is one-based

                      @@ -10616,7 +10616,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

                      - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

                      query = create.selectOne().keepStatement(true)) { }]]>

                      - The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly. + The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly.

                      @@ -12916,7 +12916,7 @@ bookDao.delete(book);]]>

                      • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
                      • -
                      • You can call JDBC's , and other methods on your JDBC driver.
                      • +
                      • You can call JDBC's , and other methods on your JDBC driver.
                      • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
                      • You can use a JTA-compliant Java EE transaction manager from your container.
                      @@ -12982,7 +12982,7 @@ public interface TransactionalCallable { }]]>

                      - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

                      Rollbacks

                      diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.8.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.8.xml index 657702fd29..70c586f003 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.8.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.8.xml @@ -3992,9 +3992,9 @@ author.store(); // The behaviour of this store call is governed by the updatable

                        -
                      • queryTimeout: Corresponds to or
                      • -
                      • maxRows: Corresponds to or
                      • -
                      • fetchSize: Corresponds to or
                      • +
                      • queryTimeout: Corresponds to or
                      • +
                      • maxRows: Corresponds to or
                      • +
                      • fetchSize: Corresponds to or

                      @@ -4350,7 +4350,7 @@ FROM "a"

                      Recursive common table expressions

                      - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

                      @@ -5073,7 +5073,7 @@ ORDER BY first_name DESC

                      - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

                      Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -5834,7 +5834,7 @@ VALUES ( .execute();

                      - The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

                      @@ -7170,7 +7170,7 @@ field(select(inline(1).as("a")));]]>

                      - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

                      @@ -9090,7 +9090,7 @@ AND language_id = 1]]>

                    - jOOQ knows a simple API called , which translates a to a : + jOOQ knows a simple API called , which translates a to a :

                    - For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

                    a = val("a"); @@ -9444,7 +9444,7 @@ AUTHOR.TITLE

                    Creating custom names

                    - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

                    Globally, by using the and setting the to STATIC_STATEMENT. This will inline all bind values for SQL statements rendered from such a Configuration.
                  • - Per query locally, by using the method. + Per query locally, by using the method.
                  • Per value locally, by using methods. @@ -9694,8 +9694,8 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]> and all its contained objects is a . QueryParts essentially provide this functionality:

                      -
                    • they can using the method
                    • -
                    • they can using the method
                    • +
                    • they can using the method
                    • +
                    • they can using the method

                    @@ -9712,7 +9712,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

                    - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

                    • It provides some information about the "state" of SQL rendering.
                    • @@ -9855,7 +9855,7 @@ having count(*) = 2]]> Variable binding

                      - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

                      • It provides some information about the "state" of the variable binding in process.
                      • @@ -10439,7 +10439,7 @@ for (int i = 0; i < result.size(); i++)

                        - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

                        All JDBC API is one-based

                        @@ -10840,7 +10840,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

                        - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

                        query = create.selectOne().keepStatement(true)) { }]]>

                        - The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly. + The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly.

                        @@ -13140,7 +13140,7 @@ bookDao.delete(book);]]>

                        • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
                        • -
                        • You can call JDBC's , and other methods on your JDBC driver.
                        • +
                        • You can call JDBC's , and other methods on your JDBC driver.
                        • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
                        • You can use a JTA-compliant Java EE transaction manager from your container.
                        @@ -13206,7 +13206,7 @@ public interface TransactionalCallable { }]]>

                        - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

                        Rollbacks

                        diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.9.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.9.xml index ef90f59e57..ba7d1218a9 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.9.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.9.xml @@ -3998,9 +3998,9 @@ author.store(); // The behaviour of this store call is governed by the updatable

                          -
                        • queryTimeout: Corresponds to or
                        • -
                        • maxRows: Corresponds to or
                        • -
                        • fetchSize: Corresponds to or
                        • +
                        • queryTimeout: Corresponds to or
                        • +
                        • maxRows: Corresponds to or
                        • +
                        • fetchSize: Corresponds to or

                        @@ -4431,7 +4431,7 @@ FROM "a"

                        Recursive common table expressions

                        - The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed. + The various SQL dialects do not agree on the use of RECURSIVE when writing recursive common table expressions. When using jOOQ, always use the or methods, and jOOQ will render the RECURSIVE keyword, if needed.

                        @@ -5154,7 +5154,7 @@ ORDER BY first_name DESC

                        - Note that in order to create such a window definition, we need to first create a using . + Note that in order to create such a window definition, we need to first create a using .

                        Even if only PostgreSQL and Sybase SQL Anywhere natively support this great feature, jOOQ can emulate it by expanding any and types that you pass to the window() method - if the database supports window functions at all. @@ -5915,7 +5915,7 @@ VALUES ( .execute();

                        - The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely. + The DEFAULT keyword (or method) can also be used for individual columns only, although that will have the same effect as leaving the column away entirely.

                        @@ -7305,7 +7305,7 @@ field(select(inline(1).as("a")));]]>

                        - These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ. + These unnamed expressions can be used both in SQL as well as with jOOQ. However, do note that jOOQ will use to extract this column name from the field, when referencing the field or when nesting it in derived tables. In order to stay in full control of any such column names, it is always a good idea to provide explicit aliasing for column expressions, both in SQL as well as in jOOQ.

                        @@ -9225,7 +9225,7 @@ AND language_id = 1]]>

                      - jOOQ knows a simple API called , which translates a to a : + jOOQ knows a simple API called , which translates a to a :

                      - For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument: + For convenience, there is also a API that allows for wrapping a comma-separated list of query parts in a single template argument:

                      a = val("a"); @@ -9578,7 +9578,7 @@ AUTHOR.TITLE

                      Creating custom names

                      - Custom, qualified or unqualified names can be created very easily using the constructor: + Custom, qualified or unqualified names can be created very easily using the constructor:

                      and all its contained objects is a . QueryParts essentially provide this functionality:

                        -
                      • they can using the method
                      • -
                      • they can using the method
                      • +
                      • they can using the method
                      • +
                      • they can using the method

                      @@ -9843,7 +9843,7 @@ create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");]]>SQL rendering

                      - Every must implement the method to render its SQL string to a . This RenderContext has two purposes: + Every must implement the method to render its SQL string to a . This RenderContext has two purposes:

                      • It provides some information about the "state" of SQL rendering.
                      • @@ -9986,7 +9986,7 @@ having count(*) = 2]]> Variable binding

                        - Every must implement the method. This Context has two purposes (among many others): + Every must implement the method. This Context has two purposes (among many others):

                        • It provides some information about the "state" of the variable binding in process.
                        • @@ -10600,7 +10600,7 @@ for (int i = 0; i < result.size(); i++)

                          - Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection. + Unlike in JDBC, where positions the underlying cursor at the one-based index, we Java developers really don't like that way of thinking. As can be seen in the above loop, we iterate over this result as we do over any other Java collection.

                          All JDBC API is one-based

                          @@ -11001,7 +11001,7 @@ System.out.println("Published in: " + book.getPublishedIn());]]> Sometimes, you may want to explicitly select only a subset of your columns, but still use strongly typed records. Alternatively, you may want to join a one-to-one relationship and receive the two individual strongly typed records after the join.

                          - In both of the above cases, you can map your "into" a type by using . + In both of the above cases, you can map your "into" a type by using .

                          query = create.selectOne().keepStatement(true)) { }]]>

                          - The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly. + The above example shows how a query can be executed twice against the same underlying PreparedStatement. Notice how the Query must now be treated like a resource, i.e. it must be managed in a try-with-resources statement, or must be called explicitly.

                          @@ -13301,7 +13301,7 @@ bookDao.delete(book);]]>

                          • You can issue vendor-specific COMMIT, ROLLBACK and other statements directly in your database.
                          • -
                          • You can call JDBC's , and other methods on your JDBC driver.
                          • +
                          • You can call JDBC's , and other methods on your JDBC driver.
                          • You can use third-party transaction management libraries like Spring TX. Examples shown in the .
                          • You can use a JTA-compliant Java EE transaction manager from your container.
                          @@ -13367,7 +13367,7 @@ public interface TransactionalCallable { }]]>

                          - Such transactional code can be passed to or methods. + Such transactional code can be passed to or methods.

                          Rollbacks