Skip to content

Commit 3d6b9fa

Browse files
feat: add date_part to extract function name transformation for PG14 compatibility
Co-Authored-By: Dan Lynch <[email protected]>
1 parent 333d484 commit 3d6b9fa

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

packages/transform/src/transformers/v13-to-v14.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,24 @@ export class V13ToV14Transformer {
110110
const result: any = {};
111111

112112
if (node.funcname !== undefined) {
113-
result.funcname = Array.isArray(node.funcname)
113+
let funcname = Array.isArray(node.funcname)
114114
? node.funcname.map(item => this.transform(item as any, context))
115115
: this.transform(node.funcname as any, context);
116+
117+
if (Array.isArray(funcname) && funcname.length >= 2) {
118+
const lastName = funcname[funcname.length - 1];
119+
if (lastName && typeof lastName === 'object' && 'String' in lastName) {
120+
const funcName = lastName.String.str || lastName.String.sval;
121+
if (funcName === 'date_part') {
122+
funcname = [...funcname];
123+
funcname[funcname.length - 1] = {
124+
String: { str: 'extract' }
125+
};
126+
}
127+
}
128+
}
129+
130+
result.funcname = funcname;
116131
}
117132

118133
if (node.args !== undefined) {

0 commit comments

Comments
 (0)