# Class SQLInterpolator

java.lang.Object
com.databricks.jdbc.common.util.SQLInterpolator

public class SQLInterpolator extends Object

## Constructor Summary

Constructors
Constructor
Description
`SQLInterpolator()`

## Method Summary

Modifier and Type
Method
Description
`static String`
`interpolateSQL(String sql, Map<Integer,ImmutableSqlParameter> params)`
Interpolates the given SQL string by replacing placeholders with the provided parameters.
`static String`
`surroundPlaceholdersWithQuotes(String sql)`
Surrounds unquoted placeholders (?)

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SQLInterpolator

public SQLInterpolator()

## Method Details

### interpolateSQL

public static String interpolateSQL(String sql, Map<Integer,ImmutableSqlParameter> params) throws DatabricksValidationException
Interpolates the given SQL string by replacing placeholders with the provided parameters.

This method splits the SQL string by placeholders (question marks) and replaces each placeholder with the corresponding parameter from the provided map. The map keys are 1-based indexes, aligning with the SQL parameter positions.

Parameters:
  `sql` - the SQL string containing placeholders ('?') to be replaced.
  `params` - a map of parameters where the key is the 1-based index of the placeholder in the SQL string, and the value is the corresponding `ImmutableSqlParameter`.
Returns:
  the interpolated SQL string with placeholders replaced by the corresponding parameters.
Throws:
  `DatabricksValidationException` - if the number of placeholders in the SQL string does not match the number of parameters provided in the map.

### surroundPlaceholdersWithQuotes

public static String surroundPlaceholdersWithQuotes(String sql)
Surrounds unquoted placeholders (?) with single quotes, preserving already quoted ones. This is crucial for DESCRIBE QUERY commands as unquoted placeholders will cause a parse_syntax_error.