MartijnVisser commented on code in PR #29834:
URL: https://github.com/apache/flink/pull/29834#discussion_r4524220895


##########
docs/data/functions/string-and-binary/regexp_extract.yml:
##########
@@ -0,0 +1,146 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License
+
+# One built-in function page. See the layouts/partials/built-in-functions/ 
partials for how each
+# field is rendered.
+
+name: REGEXP_EXTRACT

Review Comment:
   I think the Regular Expressions question is still open. String & Binary has 
58 entries, 7 of them `REGEXP_*`. Moving them later needs new redirects, so I 
would decide it here.



##########
docs/layouts/shortcodes/built_in_functions_index.html:
##########
@@ -0,0 +1,124 @@
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}}
+{{/*
+  Lists all built-in functions in alphabetical order, followed by the 
operators and special forms,
+  and the Table API-only functions. Each entry links to its category page, 
which shows it in the
+  sql_functions table.
+
+  A category's "sqlFunctions" names one sql_functions.yml key or a list of 
keys.
+
+  An entry of sql_functions.yml is a function if a line of its "sql" field 
starts with an
+  upper-case name that is followed by "(" or nothing, such as "LOWER(string)" 
or "CURRENT_DATE".
+  Every such line counts, so "CEIL(numeric)" and "CEILING(numeric)" in one 
entry are two names.
+  Any other entry, such as "value1 = value2" or "CASE value WHEN ...", is an 
operator. An entry
+  without a "sql" field, such as "NUMERIC.year", is listed as Table API only.
+*/}}
+{{ $yml := cond (eq .Page.Language.Lang "zh") site.Data.sql_functions_zh 
site.Data.sql_functions }}
+{{ $functions := slice }}
+{{ $operators := slice }}
+{{ $tableOnly := slice }}
+{{ range .Page.CurrentSection.Sections }}

Review Comment:
   This misses the table functions, such as `TUMBLE` and `FROM_CHANGELOG`, 
which are Markdown tables and not in `sql_functions.yml`. The old page listed 
them. Is that intended?



##########
docs/layouts/shortcodes/built_in_functions_index.html:
##########
@@ -0,0 +1,124 @@
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}}
+{{/*
+  Lists all built-in functions in alphabetical order, followed by the 
operators and special forms,
+  and the Table API-only functions. Each entry links to its category page, 
which shows it in the
+  sql_functions table.
+
+  A category's "sqlFunctions" names one sql_functions.yml key or a list of 
keys.
+
+  An entry of sql_functions.yml is a function if a line of its "sql" field 
starts with an
+  upper-case name that is followed by "(" or nothing, such as "LOWER(string)" 
or "CURRENT_DATE".
+  Every such line counts, so "CEIL(numeric)" and "CEILING(numeric)" in one 
entry are two names.
+  Any other entry, such as "value1 = value2" or "CASE value WHEN ...", is an 
operator. An entry
+  without a "sql" field, such as "NUMERIC.year", is listed as Table API only.
+*/}}
+{{ $yml := cond (eq .Page.Language.Lang "zh") site.Data.sql_functions_zh 
site.Data.sql_functions }}
+{{ $functions := slice }}
+{{ $operators := slice }}
+{{ $tableOnly := slice }}
+{{ range .Page.CurrentSection.Sections }}
+  {{ $category := . }}
+  {{ with index .Params "sqlfunctions" }}
+    {{ range $key := cond (reflect.IsSlice .) . (slice .) }}
+      {{ range index $yml $key }}
+        {{ $sql := trim (.sql | default "") " \n" }}
+        {{ if $sql }}
+          {{ $names := slice }}
+          {{ range split $sql "\n" }}
+            {{ $line := trim . " " }}
+            {{ with findRE `^[A-Z][A-Z0-9_]*` $line 1 }}
+              {{ $name := index . 0 }}
+              {{ if or (eq $line $name) (hasPrefix $line (print $name "(")) }}
+                {{ $names = $names | append $name }}
+              {{ end }}
+            {{ end }}
+          {{ end }}
+          {{ range $names }}
+            {{ $functions = $functions | append (dict "name" . "link" 
$category.RelPermalink) }}
+          {{ else }}
+            {{ $label := replace (trim (index (split $sql "\n") 0) " ") "**" 
"" }}
+            {{ $operators = $operators | append (dict "name" $label "link" 
$category.RelPermalink) }}
+          {{ end }}
+        {{ else }}
+          {{ with trim (.table | default "") " \n" }}
+            {{ $label := replace (trim (index (split . "\n") 0) " ") "**" "" }}
+            {{ $tableOnly = $tableOnly | append (dict "name" $label "link" 
$category.RelPermalink) }}
+          {{ end }}
+        {{ end }}
+      {{ end }}
+    {{ end }}
+  {{ end }}
+{{ end }}
+
+{{ $unique := slice }}
+{{ $letters := slice }}
+{{ $previous := "" }}
+{{ range sort $functions "name" }}
+  {{ if ne .name $previous }}

Review Comment:
   `CEIL` and `FLOOR` are in both Mathematical and Date & Time, but this keeps 
only the first, so both link to Date & Time. Deduplicating on name and link 
keeps both.



##########
docs/content/docs/dev/table/tableApi.md:
##########
@@ -1155,7 +1155,7 @@ Currently not supported in Python Table API.
 
 {{< label "Batch" >}} {{< label "Streaming" >}}
 
-Enriches an append-only table with the current state of an updating table by 
calling the built-in `SNAPSHOT` [process table function]({{< ref 
"docs/sql/functions/built-in-functions" >}}) as the build (right) side of a 
`LATERAL` join. Each probe-side row is joined with the build-side state that is 
current when the row is processed. Both inner and left outer joins are 
supported. An equality predicate is recommended but not required.
+Enriches an append-only table with the current state of an updating table by 
calling the built-in `SNAPSHOT` [process table function]({{< ref 
"docs/sql/built-in-functions" >}}) as the build (right) side of a `LATERAL` 
join. Each probe-side row is joined with the build-side state that is current 
when the row is processed. Both inner and left outer joins are supported. An 
equality predicate is recommended but not required.

Review Comment:
   This could link to the Process Table Functions page now that it exists.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to