| From: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
|---|---|
| To: | Vik Fearing <vik(at)postgresfriends(dot)org>, Tatsuo Ishii <ishii(at)postgresql(dot)org> |
| Cc: | david(dot)g(dot)johnston(at)gmail(dot)com, jacob(dot)champion(at)enterprisedb(dot)com, er(at)xs4all(dot)nl, peter(at)eisentraut(dot)org, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Row pattern recognition |
| Date: | 2025-11-20 07:33:48 |
| Message-ID: | 908229B1-97A4-4F32-9A0C-65B0BF159CCC@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> On Nov 19, 2025, at 12:14, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
>
>
> 9 - 0002 - parse_clause.c
I am continuing to review 0003
10 - 0003
```
+ Assert(list_length(patternVariables) == list_length(defineClause));
```
Is this assert true? From what I learned, pattern length doesn’t have to equal to define length. For example, I got an example from [1]:
```
Example 4
-- This example has three different patterns.
-- Comment two of them, to get error-free query.
SELECT company, price_date, price
FROM stock_price
MATCH_RECOGNIZE (
partition by company
order by price_date
all rows per match
pattern ( limit_50 up up* down down* )
define
limit_50 as price <= 50.00,
up as price > prev(price),
down as price < prev(price)
)
WHERE company = 'B'
ORDER BY price_date;
```
In this example, pattern has 5 elements and define has only 3 elements.
11 - 0004 - plannodes.h
```
+ /* Row Pattern Recognition AFTER MACH SKIP clause */
+ RPSkipTo rpSkipTo; /* Row Pattern Skip To type */
```
Typo: MACH -> MATCH
I’d stop here, and continue 0005 tomorrow.
[1] https://link.springer.com/article/10.1007/s13222-022-00404-3
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Nazir Bilal Yavuz | 2025-11-20 08:00:24 | Re: PRI?64 vs Visual Studio (2022) |
| Previous Message | Amit Langote | 2025-11-20 07:30:26 | Re: generic plans and "initial" pruning |