@@ -84,7 +84,7 @@ export default class PostgresMetaFunctions {
84
84
language ?: string
85
85
} ) : Promise < PostgresMetaResult < PostgresFunction > > {
86
86
const sql = `
87
- CREATE OR REPLACE FUNCTION ${ ident ( schema ) } .${ ident ( name ) }
87
+ CREATE FUNCTION ${ ident ( schema ) } .${ ident ( name ) }
88
88
${ params && params . length ? `(${ params . join ( ',' ) } )` : '()' }
89
89
RETURNS ${ rettype }
90
90
AS ${ literal ( definition ) }
@@ -102,9 +102,9 @@ export default class PostgresMetaFunctions {
102
102
id : number ,
103
103
{
104
104
name,
105
- schema = 'public' ,
105
+ schema,
106
106
} : {
107
- name : string
107
+ name ? : string
108
108
schema ?: string
109
109
}
110
110
) : Promise < PostgresMetaResult < PostgresFunction > > {
@@ -113,15 +113,21 @@ export default class PostgresMetaFunctions {
113
113
return { data : null , error : retrieveError }
114
114
}
115
115
116
- let alter = `ALTER FUNCTION ${ ident ( old ! . name ) } `
117
- const nameSql =
118
- name === undefined || name == old ! . name ? '' : `${ alter } RENAME TO ${ ident ( name ) } ;`
116
+ const updateNameSql =
117
+ name && name !== old ! . name
118
+ ? `ALTER FUNCTION ${ ident ( old ! . schema ) } .${ ident ( old ! . name ) } (${
119
+ old ! . argument_types
120
+ } ) RENAME TO ${ ident ( name ) } ;`
121
+ : ''
119
122
120
- alter = `ALTER FUNCTION ${ ident ( name ) } `
121
- const schemaSql =
122
- schema === undefined || schema == old ! . schema ? '' : `${ alter } SET SCHEMA ${ ident ( schema ) } ;`
123
+ const updateSchemaSql =
124
+ schema && schema !== old ! . schema
125
+ ? `ALTER FUNCTION ${ ident ( old ! . schema ) } .${ ident ( name || old ! . name ) } (${
126
+ old ! . argument_types
127
+ } ) SET SCHEMA ${ ident ( schema ) } ;`
128
+ : ''
123
129
124
- const sql = `BEGIN;${ nameSql } ${ schemaSql } COMMIT;`
130
+ const sql = `BEGIN;${ updateNameSql } ${ updateSchemaSql } COMMIT;`
125
131
126
132
const { error } = await this . query ( sql )
127
133
if ( error ) {
0 commit comments