@@ -3,7 +3,7 @@ import type {
33 SnowflakeDescribeTableParams ,
44 SnowflakeDescribeTableResponse ,
55} from '@/tools/snowflake/types'
6- import { extractResponseData , parseAccountUrl } from '@/tools/snowflake/utils'
6+ import { extractResponseData , parseAccountUrl , sanitizeIdentifier } from '@/tools/snowflake/utils'
77import type { ToolConfig } from '@/tools/types'
88
99const logger = createLogger ( 'SnowflakeDescribeTableTool' )
@@ -79,9 +79,16 @@ export const snowflakeDescribeTableTool: ToolConfig<
7979 'X-Snowflake-Authorization-Token-Type' : 'OAUTH' ,
8080 } ) ,
8181 body : ( params : SnowflakeDescribeTableParams ) => {
82- const requestBody : any = {
83- statement : `DESCRIBE TABLE ${ params . database } .${ params . schema } .${ params . table } ` ,
82+ const sanitizedDatabase = sanitizeIdentifier ( params . database )
83+ const sanitizedSchema = sanitizeIdentifier ( params . schema )
84+ const sanitizedTable = sanitizeIdentifier ( params . table )
85+ const fullTableName = `${ sanitizedDatabase } .${ sanitizedSchema } .${ sanitizedTable } `
86+
87+ const requestBody : Record < string , any > = {
88+ statement : `DESCRIBE TABLE ${ fullTableName } ` ,
8489 timeout : 60 ,
90+ database : params . database ,
91+ schema : params . schema ,
8592 }
8693
8794 if ( params . warehouse ) {
@@ -92,7 +99,7 @@ export const snowflakeDescribeTableTool: ToolConfig<
9299 requestBody . role = params . role
93100 }
94101
95- return JSON . stringify ( requestBody )
102+ return requestBody
96103 } ,
97104 } ,
98105
0 commit comments