You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by hz...@apache.org on 2017/03/06 19:24:05 UTC
[1/2] incubator-trafodion git commit: [TRAFODION-2517] Allow scalar
UDFs with delimited identifiers
Repository: incubator-trafodion
Updated Branches:
refs/heads/master e0128dff2 -> d15b5b65e
[TRAFODION-2517] Allow scalar UDFs with delimited identifiers
Added a parser rule for this case. Fortunately the new rule did not
increase the number of parser conflicts. Note that TMUDFs already
allowed delimited identifiers.
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/928adc6d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/928adc6d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/928adc6d
Branch: refs/heads/master
Commit: 928adc6d278d2718fbd19a0b1da1eed10a474fed
Parents: 079b210
Author: Hans Zeller <hz...@apache.org>
Authored: Thu Mar 2 23:53:40 2017 +0000
Committer: Hans Zeller <hz...@apache.org>
Committed: Thu Mar 2 23:53:40 2017 +0000
----------------------------------------------------------------------
core/sql/parser/sqlparser.y | 10 ++++++++--
core/sql/regress/udr/EXPECTED001 | 14 +++++++-------
core/sql/regress/udr/EXPECTED107.SB | 10 +++++-----
core/sql/regress/udr/TEST001 | 14 +++++++-------
core/sql/regress/udr/TEST107 | 10 +++++-----
5 files changed, 32 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/928adc6d/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 46db6ed..d70ef95 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -8332,13 +8332,19 @@ user_defined_function_name :
regular_identifier_not_builtin
{
// Function name only.
- $1->toUpper(); // UDF names can't be delimited.
+ $1->toUpper();
+ ComObjectName *name = new (PARSERHEAP())
+ ComObjectName(*$1, COM_UDF_NAME, 1, PARSERHEAP());
+ if (name == NULL) YYABORT;
+ $$ = name;
+ }
+ | DELIMITED_IDENTIFIER
+ {
ComObjectName *name = new (PARSERHEAP())
ComObjectName(*$1, COM_UDF_NAME, 1, PARSERHEAP());
if (name == NULL) YYABORT;
$$ = name;
}
-
| qualified_name '.' regular_identifier_not_builtin
{
// qualified name can't be more than 2 parts.
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/928adc6d/core/sql/regress/udr/EXPECTED001
----------------------------------------------------------------------
diff --git a/core/sql/regress/udr/EXPECTED001 b/core/sql/regress/udr/EXPECTED001
index b978be3..172428e 100644
--- a/core/sql/regress/udr/EXPECTED001
+++ b/core/sql/regress/udr/EXPECTED001
@@ -201,7 +201,7 @@
>>-- DDL time. We will get an error at runtime, though.
>>
>>-- Testing a TMUDF with no table-valued inputs
->>create table_mapping function fibonacci(start_row int, num_rows int)
+>>create table_mapping function "Fibonacci"(start_row int, num_rows int)
+>returns (ordinal int, fibonacci_number largeint)
+>external name 'Fibonacci'
+>language cpp
@@ -227,7 +227,7 @@
Table_mapping Functions for Library SCH.TEST001
===============================================
-SCH.FIBONACCI
+SCH.Fibonacci
SCH.SESSIONIZE_DYNAMIC
SCH.SESSIONIZE_DYNAMIC_SHARED
@@ -517,7 +517,7 @@ SESSION_ID SEQUENCE_NO USERID TS
--- SQL operation complete.
>>select *
-+>from UDF(fibonacci(1,10)) XO
++>from UDF("Fibonacci"(1,10)) XO
+>order by 1;
ORDINAL FIBONACCI_NUMBER
@@ -540,7 +540,7 @@ ORDINAL FIBONACCI_NUMBER
--- SQL operation complete.
>>
>>select *
-+>from UDF(fibonacci(1,10)) XO
++>from UDF("Fibonacci"(1,10)) XO
+>order by 1;
ORDINAL FIBONACCI_NUMBER
@@ -560,7 +560,7 @@ ORDINAL FIBONACCI_NUMBER
--- 10 row(s) selected.
>>
>>select sum(fibonacci_number)
-+>from UDF(fibonacci(50,10)) XO;
++>from UDF("Fibonacci"(50,10)) XO;
(EXPR)
--------------------
@@ -603,7 +603,7 @@ ORDINAL FIBONACCI_NUMBER
--- SQL operation complete.
>>select *
-+>from UDF(fibonacci(1,10)) natural join UDF(fibonacci_java(1,10));
++>from UDF("Fibonacci"(1,10)) natural join UDF(fibonacci_java(1,10));
ORDINAL FIBONACCI_NUMBER
----------- --------------------
@@ -625,7 +625,7 @@ ORDINAL FIBONACCI_NUMBER
--- SQL operation complete.
>>
>>select *
-+>from UDF(fibonacci(1,10)) cpp1 natural join
++>from UDF("Fibonacci"(1,10)) cpp1 natural join
+> UDF(fibonacci_java(1,10)) java1 natural join
+> UDF(fibonacci_java(1,10)) java2;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/928adc6d/core/sql/regress/udr/EXPECTED107.SB
----------------------------------------------------------------------
diff --git a/core/sql/regress/udr/EXPECTED107.SB b/core/sql/regress/udr/EXPECTED107.SB
index 70a6682..57af4b6 100644
--- a/core/sql/regress/udr/EXPECTED107.SB
+++ b/core/sql/regress/udr/EXPECTED107.SB
@@ -35,8 +35,8 @@
--- SQL operation complete.
>>
->>-- ADDDAYS2DATE: Adds days to a date
->>create function ADDDAYS2DATE(date,int) returns (NEWDATE date)
+>>-- "AddDays2Date@": Adds days to a date
+>>create function "AddDays2Date@"(date,int) returns (NEWDATE date)
+>language c parameter style sql external name 'addDaysToDate'
+>library TEST107
+>deterministic no sql final call allow any parallelism state area size 1024 ;
@@ -445,7 +445,7 @@ Functions for Library SCH.TEST107
=================================
SCH.ADD2
-SCH.ADDDAYS2DATE
+SCH.AddDays2Date@
SCH.CURRENT_ROLE_NAME
SCH.CURRENT_USER_NAME
SCH.ECHOBNUM0
@@ -568,7 +568,7 @@ ADD2
--- 10 row(s) selected.
>>
->>values(adddays2date(date'2000-01-01',2));
+>>values("AddDays2Date@"(date'2000-01-01',2));
NEWDATE
----------
@@ -576,7 +576,7 @@ NEWDATE
2000-01-03
--- 1 row(s) selected.
->>select adddays2date(date'2000-01-01', a) from t10;
+>>select "AddDays2Date@"(date'2000-01-01', a) from t10;
NEWDATE
----------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/928adc6d/core/sql/regress/udr/TEST001
----------------------------------------------------------------------
diff --git a/core/sql/regress/udr/TEST001 b/core/sql/regress/udr/TEST001
index 101c5f4..24e967d 100644
--- a/core/sql/regress/udr/TEST001
+++ b/core/sql/regress/udr/TEST001
@@ -40,7 +40,7 @@ drop table t001_Datatypes;
drop table_mapping function sessionize_dynamic;
drop table_mapping function sessionize_dynamic_shared;
drop table_mapping function sessionize_err;
-drop table_mapping function fibonacci;
+drop table_mapping function "Fibonacci";
drop library TEST001;
drop table_mapping function sessionize_java;
drop table_mapping function fibonacci_java;
@@ -214,7 +214,7 @@ library TEST001;
-- DDL time. We will get an error at runtime, though.
-- Testing a TMUDF with no table-valued inputs
-create table_mapping function fibonacci(start_row int, num_rows int)
+create table_mapping function "Fibonacci"(start_row int, num_rows int)
returns (ordinal int, fibonacci_number largeint)
external name 'Fibonacci'
language cpp
@@ -363,16 +363,16 @@ execute s;
-- will fail until tinyint support is added for spj/procedures
cqd traf_tinyint_spj_support 'ON';
select *
-from UDF(fibonacci(1,10)) XO
+from UDF("Fibonacci"(1,10)) XO
order by 1;
cqd traf_tinyint_spj_support reset;
select *
-from UDF(fibonacci(1,10)) XO
+from UDF("Fibonacci"(1,10)) XO
order by 1;
select sum(fibonacci_number)
-from UDF(fibonacci(50,10)) XO;
+from UDF("Fibonacci"(50,10)) XO;
select *
from UDF(fibonacci_java(1,10)) XO
@@ -383,11 +383,11 @@ from UDF(fibonacci_java(50,10)) XO;
control query shape join(tmudf, tmudf);
select *
-from UDF(fibonacci(1,10)) natural join UDF(fibonacci_java(1,10));
+from UDF("Fibonacci"(1,10)) natural join UDF(fibonacci_java(1,10));
control query shape off;
select *
-from UDF(fibonacci(1,10)) cpp1 natural join
+from UDF("Fibonacci"(1,10)) cpp1 natural join
UDF(fibonacci_java(1,10)) java1 natural join
UDF(fibonacci_java(1,10)) java2;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/928adc6d/core/sql/regress/udr/TEST107
----------------------------------------------------------------------
diff --git a/core/sql/regress/udr/TEST107 b/core/sql/regress/udr/TEST107
index a4f921c..8b91277 100644
--- a/core/sql/regress/udr/TEST107
+++ b/core/sql/regress/udr/TEST107
@@ -81,7 +81,7 @@ drop table t10;
drop function GETMXV;
drop function ADD2;
-drop function ADDDAYS2DATE;
+drop function "AddDays2Date@";
drop function GETCOLLATION;
drop function SESSION_USER_NAME;
drop function VALIDATE_SESSION_USER_NAME;
@@ -161,8 +161,8 @@ language c parameter style sql external name 'add2'
library TEST107
deterministic no sql final call allow any parallelism state area size 1024 ;
--- ADDDAYS2DATE: Adds days to a date
-create function ADDDAYS2DATE(date,int) returns (NEWDATE date)
+-- "AddDays2Date@": Adds days to a date
+create function "AddDays2Date@"(date,int) returns (NEWDATE date)
language c parameter style sql external name 'addDaysToDate'
library TEST107
deterministic no sql final call allow any parallelism state area size 1024 ;
@@ -355,8 +355,8 @@ execute S;
select add2(a,b) from t10;
select add2(a,c) from t10;
-values(adddays2date(date'2000-01-01',2));
-select adddays2date(date'2000-01-01', a) from t10;
+values("AddDays2Date@"(date'2000-01-01',2));
+select "AddDays2Date@"(date'2000-01-01', a) from t10;
values(getMXV());
[2/2] incubator-trafodion git commit: Merge [TRAFODION-2517] Allow
scalar UDFs with delimited identifiers PR-987
Posted by hz...@apache.org.
Merge [TRAFODION-2517] Allow scalar UDFs with delimited identifiers PR-987
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/d15b5b65
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/d15b5b65
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/d15b5b65
Branch: refs/heads/master
Commit: d15b5b65ee44aff7e3282fcf47ee02a9d2494fe5
Parents: e0128df 928adc6
Author: Hans Zeller <hz...@apache.org>
Authored: Mon Mar 6 19:23:25 2017 +0000
Committer: Hans Zeller <hz...@apache.org>
Committed: Mon Mar 6 19:23:25 2017 +0000
----------------------------------------------------------------------
core/sql/parser/sqlparser.y | 10 ++++++++--
core/sql/regress/udr/EXPECTED001 | 14 +++++++-------
core/sql/regress/udr/EXPECTED107.SB | 10 +++++-----
core/sql/regress/udr/TEST001 | 14 +++++++-------
core/sql/regress/udr/TEST107 | 10 +++++-----
5 files changed, 32 insertions(+), 26 deletions(-)
----------------------------------------------------------------------