@@ -447,9 +447,7 @@ public class Parser {
447447 private Select currentSelect ;
448448 private List <TableView > cteCleanups ;
449449 private ArrayList <Parameter > parameters ;
450- private ArrayList <Parameter > indexedParameterList ;
451450 private ArrayList <Parameter > suppliedParameters ;
452- private ArrayList <Parameter > suppliedParameterList ;
453451 private String schemaName ;
454452 private ArrayList <String > expectedList ;
455453 private boolean rightsChecked ;
@@ -589,7 +587,6 @@ private CommandList prepareCommandList(CommandContainer command, Prepared p, Str
589587 return new CommandList (session , sql , command , list , parameters , remainingSql );
590588 }
591589 suppliedParameters = parameters ;
592- suppliedParameterList = indexedParameterList ;
593590 try {
594591 p = parse (remainingSql , remainingTokens );
595592 } catch (DbException ex ) {
@@ -666,7 +663,6 @@ private Prepared parse(String sql, boolean withExpectedList) {
666663 expectedList = null ;
667664 }
668665 parameters = suppliedParameters != null ? suppliedParameters : Utils .newSmallArrayList ();
669- indexedParameterList = suppliedParameterList ;
670666 currentSelect = null ;
671667 currentPrepared = null ;
672668 createView = null ;
@@ -852,14 +848,12 @@ private Prepared parsePrepared() {
852848 if (c == null ) {
853849 throw getSyntaxError ();
854850 }
855- if (indexedParameterList != null ) {
856- for (int i = 0 , size = indexedParameterList .size ();
857- i < size ; i ++) {
858- if (indexedParameterList .get (i ) == null ) {
859- indexedParameterList .set (i , new Parameter (i ));
851+ if (parameters != null ) {
852+ for (int i = 0 , size = parameters .size (); i < size ; i ++) {
853+ if (parameters .get (i ) == null ) {
854+ parameters .set (i , new Parameter (i ));
860855 }
861856 }
862- parameters = indexedParameterList ;
863857 }
864858 boolean withParamValues = readIf (OPEN_BRACE );
865859 if (withParamValues ) {
@@ -4917,46 +4911,26 @@ private void checkDatabaseName(String databaseName) {
49174911 }
49184912
49194913 private Parameter readParameter () {
4920- // there must be no space between ? and the number
49214914 int index = ((Token .ParameterToken ) token ).index ();
49224915 read ();
49234916 Parameter p ;
4924- if (index > 0 ) {
4925- if (indexedParameterList == null ) {
4926- if (parameters == null ) {
4927- // this can occur when parsing expressions only (for
4928- // example check constraints)
4929- throw getSyntaxError ();
4930- } else if (!parameters .isEmpty ()) {
4931- throw DbException
4932- .get (ErrorCode .CANNOT_MIX_INDEXED_AND_UNINDEXED_PARAMS );
4933- }
4934- indexedParameterList = Utils .newSmallArrayList ();
4935- }
4936- if (index > Constants .MAX_PARAMETER_INDEX ) {
4937- throw DbException .getInvalidValueException (
4938- "parameter index" , index );
4939- }
4940- index --;
4941- if (indexedParameterList .size () <= index ) {
4942- indexedParameterList .ensureCapacity (index + 1 );
4943- while (indexedParameterList .size () <= index ) {
4944- indexedParameterList .add (null );
4945- }
4946- }
4947- p = indexedParameterList .get (index );
4948- if (p == null ) {
4949- p = new Parameter (index );
4950- indexedParameterList .set (index , p );
4951- parameters .add (p );
4952- }
4953- } else {
4954- if (indexedParameterList != null ) {
4955- throw DbException
4956- .get (ErrorCode .CANNOT_MIX_INDEXED_AND_UNINDEXED_PARAMS );
4917+ if (parameters == null ) {
4918+ parameters = Utils .newSmallArrayList ();
4919+ }
4920+ if (index > Constants .MAX_PARAMETER_INDEX ) {
4921+ throw DbException .getInvalidValueException ("parameter index" , index );
4922+ }
4923+ index --;
4924+ if (parameters .size () <= index ) {
4925+ parameters .ensureCapacity (index + 1 );
4926+ while (parameters .size () < index ) {
4927+ parameters .add (null );
49574928 }
4958- p = new Parameter (parameters . size () );
4929+ p = new Parameter (index );
49594930 parameters .add (p );
4931+ } else if ((p = parameters .get (index )) == null ) {
4932+ p = new Parameter (index );
4933+ parameters .set (index , p );
49604934 }
49614935 return p ;
49624936 }
@@ -9660,8 +9634,8 @@ public void setRightsChecked(boolean rightsChecked) {
96609634 this .rightsChecked = rightsChecked ;
96619635 }
96629636
9663- public void setSuppliedParameterList (ArrayList <Parameter > suppliedParameterList ) {
9664- this .suppliedParameterList = suppliedParameterList ;
9637+ public void setSuppliedParameters (ArrayList <Parameter > suppliedParameters ) {
9638+ this .suppliedParameters = suppliedParameters ;
96659639 }
96669640
96679641 /**
0 commit comments