From b5b242a3f6648cece79280d378fa9b272eb23a41 Mon Sep 17 00:00:00 2001 From: Andreas Reichel Date: Thu, 6 Feb 2025 10:09:05 +0700 Subject: [PATCH] feat: `ParenthesedSelect` can have `Alias` Signed-off-by: Andreas Reichel --- build.gradle | 2 ++ .../statement/select/ParenthesedSelect.java | 2 +- .../statement/piped/AsPipeOperatorTest.java | 23 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/test/java/net/sf/jsqlparser/statement/piped/AsPipeOperatorTest.java diff --git a/build.gradle b/build.gradle index 9dc858d60..ed67d0d76 100644 --- a/build.gradle +++ b/build.gradle @@ -132,6 +132,8 @@ javadoc { options.addBooleanOption('html5', true) } options.addBooleanOption("Xdoclint:none", true) + options.addStringOption('J-Xmx4g') + options.addStringOption('J-Xss2m') } jar { diff --git a/src/main/java/net/sf/jsqlparser/statement/select/ParenthesedSelect.java b/src/main/java/net/sf/jsqlparser/statement/select/ParenthesedSelect.java index 7fa729e37..223792d0d 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/ParenthesedSelect.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/ParenthesedSelect.java @@ -79,7 +79,7 @@ private static Alias getAliasFromItem(FromItem fromItem) { TableFunction t = (TableFunction) fromItem; return new Alias(t.getName(), true); } else { - return new Alias(fromItem.getAlias().getName(), true); + return fromItem.getAlias()!=null ? new Alias(fromItem.getAlias().getName(), true) : null; } } diff --git a/src/test/java/net/sf/jsqlparser/statement/piped/AsPipeOperatorTest.java b/src/test/java/net/sf/jsqlparser/statement/piped/AsPipeOperatorTest.java new file mode 100644 index 000000000..fa559c849 --- /dev/null +++ b/src/test/java/net/sf/jsqlparser/statement/piped/AsPipeOperatorTest.java @@ -0,0 +1,23 @@ +package net.sf.jsqlparser.statement.piped; + +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.test.TestUtils; +import org.junit.jupiter.api.Test; + +class AsPipeOperatorTest { + + @Test + void testParseAndDeparse() throws JSQLParserException { + String sqlStr="(\n" + + " SELECT '000123' AS id, 'apples' AS item, 2 AS sales\n" + + " UNION ALL\n" + + " SELECT '000456' AS id, 'bananas' AS item, 5 AS sales\n" + + ") AS sales_table\n" + + "|> AGGREGATE SUM(sales) AS total_sales GROUP BY id, item\n" + + "|> AS t1\n" + + "|> JOIN (SELECT 456 AS id, 'yellow' AS color) AS t2\n" + + " ON CAST(t1.id AS INT64) = t2.id\n" + + "|> SELECT t2.id, total_sales, color;"; + TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true); + } +} \ No newline at end of file