@@ -171,12 +171,12 @@ public PreparedSql getIdentitySelectSql(String catalogName,
171171 if (columnName == null ) {
172172 throw new DomaNullPointerException ("columnName" );
173173 }
174- String identityTableName = createIdentityTableName ( catalogName ,
175- schemaName , tableName , columnName , isQuoteRequired );
174+ String identitySeqFuncExpr = createIdentitySequenceFunctionExpression (
175+ catalogName , schemaName , tableName , columnName , isQuoteRequired );
176176 StringBuilder buf = new StringBuilder (64 );
177- buf .append ("select currval(' " );
178- buf .append (identityTableName );
179- buf .append ("' )" );
177+ buf .append ("select currval(" );
178+ buf .append (identitySeqFuncExpr );
179+ buf .append (")" );
180180 String rawSql = buf .toString ();
181181 return new PreparedSql (SqlKind .SELECT , rawSql , rawSql , null ,
182182 Collections .<InParameter <?>> emptyList (), SqlLogType .FORMATTED );
@@ -192,26 +192,27 @@ public Sql<?> getIdentityReservationSql(String catalogName,
192192 if (columnName == null ) {
193193 throw new DomaNullPointerException ("columnName" );
194194 }
195- String identityTableName = createIdentityTableName ( catalogName ,
196- schemaName , tableName , columnName , isQuoteRequired );
195+ String identitySeqFuncExpr = createIdentitySequenceFunctionExpression (
196+ catalogName , schemaName , tableName , columnName , isQuoteRequired );
197197 StringBuilder buf = new StringBuilder (64 );
198- buf .append ("select nextval(' " );
199- buf .append (identityTableName );
200- buf .append ("' ) from generate_series(1, " );
198+ buf .append ("select nextval(" );
199+ buf .append (identitySeqFuncExpr );
200+ buf .append (") from generate_series(1, " );
201201 buf .append (reservationSize );
202202 buf .append (")" );
203203 String rawSql = buf .toString ();
204204 return new PreparedSql (SqlKind .SELECT , rawSql , rawSql , null ,
205205 Collections .<InParameter <?>> emptyList (), SqlLogType .FORMATTED );
206206 }
207207
208- protected String createIdentityTableName (String catalogName ,
208+ protected String createIdentitySequenceFunctionExpression (String catalogName ,
209209 String schemaName , String tableName , String columnName ,
210210 boolean isQuoteRequired ) {
211211 String qualifiedTableName = DatabaseObjectUtil .getQualifiedName (
212212 isQuoteRequired ? this ::applyQuote : Function .identity (),
213- catalogName , schemaName , tableName + "_" + columnName + "_seq" );
214- return qualifiedTableName ;
213+ catalogName , schemaName , tableName );
214+ String colName = isQuoteRequired ? columnName : columnName .toLowerCase ();
215+ return "pg_catalog.pg_get_serial_sequence('" + qualifiedTableName + "', '" + colName + "')" ;
215216 }
216217
217218 @ Override
0 commit comments