我已经为表 MyTable 创建了一个pg函数(存储过程)。
当我创建一个续集查询MyTable.findAll(query)时,表有一个别名但表的属性(列)没有,所以生成的查询是:
;-- section_end..rela.dyn:
;-- section..text:
;-- test:
/ (fcn) entry0 20
| entry0 ();
| 0x00000268 b001 mov al, 1 ; [6] va=0x00000268 pa=0x00000268 sz=25 vsz=25 rwx=--r-x .text
| 0x0000026a 40b701 mov dil, 1
| 0x0000026d 48be7c020000. movabs rsi, 0x27c ; "hello" ; RELOC 64
| 0x00000277 b207 mov dl, 7
| 0x00000279 0f05 syscall
\ 0x0000027b c3 ret
; DATA XREF from 0x0000026d (entry0)
0x0000027c 68656c6c6f push 0x6f6c6c65
;-- section_end..text:
0x00000281 0000 add byte [rax], al
0x00000283 0000 add byte [rax], al
0x00000285 0000 add byte [rax], al
;-- section..eh_frame:
;-- section_end..eh_frame:
;-- section_end.LOAD0:
0x00000287 ~ 0000 add byte [rax], al
0x00000289 0000 add byte [rax], al
0x0000028b 0000 add byte [rax], al
0x0000028d 0000 add byte [rax], al
0x0000028f 0000 add byte [rax], al
0x00000291 0000 add byte [rax], al
............ and so on, wasting lots of kilobytes......
导致错误
SELECT ...,....,...., "myStoredProcedure" .... FROM "MyTable" as "MyTable" ;
当我使用另一个表加入 MyTable 并选择该字段时,生成的查询将变为:
SequelizeDatabaseError: column "myStoredProcedure" does not exist
完美无缺。如何强制别名在我选择的列上使用,因此当我不联合表时,我可以像常规列一样选择存储过程
答案 0 :(得分:0)
好的,我通过创建一个假模型和一个名为Fakes的空表来解决它。然后我包括Fake关联(这是一个空表,列作为我有函数的所有表的外键,id不与其他表连接)。这样,“MyTable”的别名将添加到所有列,并且函数可以正常工作。