You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2007/10/29 19:49:46 UTC

svn commit: r589804 - in /db/derby/code/trunk/java/engine/org/apache/derby: iapi/sql/conn/ iapi/util/ impl/db/ impl/sql/conn/

Author: djd
Date: Mon Oct 29 11:49:45 2007
New Revision: 589804

URL: http://svn.apache.org/viewvc?rev=589804&view=rev
Log:
DERBY-3147 (partial) Clean of handling user identifiers and renaming some IdUtil methods with comments to make behaviour clearer.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericAuthorizer.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java?rev=589804&r1=589803&r2=589804&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java Mon Oct 29 11:49:45 2007
@@ -94,11 +94,10 @@
 	/**
 	 * Initialize. For use after pushing the contexts that initialization needs.
 	 *
-	 * @param sqlConnection	Whether or not this is called from a sql connection.
 	 *
 	 * @exception StandardException thrown if something goes wrong
 	 */
-	void initialize(boolean sqlConnection) throws StandardException;
+	void initialize() throws StandardException;
 
 	/**
 	 * Get value of logStatementText.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java?rev=589804&r1=589803&r2=589804&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/IdUtil.java Mon Oct 29 11:49:45 2007
@@ -129,11 +129,7 @@
 	}
 
     /**
-      Parse a multi-part (dot separated) SQL identifier form the
-      StringReader provided. Raise an excepion
-      if the string does not contain valid SQL indentifiers.
-      The returned String array contains the normalized form of the
-      identifiers.
+c
     
     @param s The string to be parsed
     @return An array of strings made by breaking the input string at its dots, '.'.
@@ -169,16 +165,14 @@
 	}
 	
 	/**
-	  Convert the String provided to an ID. Throw an exception
-	  iff the string does not contain only a valid external form
-	  for an id. This is a convenience routine that simply
-	  uses getId(StringReader) to do the work.
-	  
-	  <P> See the header for getId below for restrictions.
-	  
+      Parse a SQL identifier from the String provided. Raise an excepion
+      if the string does not contain a valid SQL indentifier.
+      The returned String  contains the normalized form of the
+      identifier.
+        
 	  @exception StandardException Oops
 	  */
-	public static String parseId(String s)
+	public static String parseSQLIdentifier(String s)
 		 throws StandardException
 	{
 		StringReader r = new StringReader(s);
@@ -400,8 +394,10 @@
 
 
 	/**
-	  Scan a list of ids from the string provided. This returns
-	  an array with id per entry. This raises an an exception if
+	  Scan a list of comma separated SQL identifiers from the string provided.
+      This returns an array with containing the normalized forms of the identifiers.
+      
+      This raises an an exception if
 	  the string does not contain a valid list of names.
 
 	  @exception StandardException Oops
@@ -418,7 +414,8 @@
 	
 	
 	/**
-	  Parse an idList. 
+	  Parse a list of comma separated SQL identifiers returning
+      them a as elements in an array.
 
 	  @param normalize true means return ids in nomral form, false means
 	        return them as they were entered.
@@ -497,7 +494,7 @@
 	}
 
 	/**
-	 * Map userName to authorizationId
+	 * Map userName to authorizationId in its normal form.
 	 * 
 	 * @exception StandardException on error or userName is null
 	 */
@@ -505,7 +502,7 @@
 	{
 		try {
             if (userName != null)
-			    return parseId(userName);
+			    return parseSQLIdentifier(userName);
 		}
 		catch (StandardException se) {
 		}
@@ -619,7 +616,8 @@
 	}
 
 	/**
-	  Return true if the id provided is on the list provided.
+	  Return true if the normalized value of an indentifier is on the list 
+      of SQL identifiers provided.
 	  @param id an id in normal form
 	  @param	list a list of ids in external form.
 	  @exception StandardException oops.
@@ -635,13 +633,18 @@
 	}
 
 	/**
-	  Delete an id from a list of ids.
+	  Delete an normal value from a list of SQL identifiers.
+      The returned list maintains its remaining identifiers in the
+      format they were upon entry to the call.
+      
+      
 	  @param id an id in normal form (quotes removed, upshifted if regular)
 	  @param list a comma separated list of ids in external
 	         form (possibly delmited or not upshifted).
 	  @return the list with the id deleted or null if the
 	    resulting list has no ids. If 'id' is not on 'list'
-		this returns list unchanged.
+		this returns list unchanged. If list becomes empty after the removal
+        null is returned.
 				 
 	  @exception StandardException oops.
 	  */
@@ -652,13 +655,14 @@
 		Vector v = new Vector();
 		StringReader r = new StringReader(list);
 		String[] enteredList_a = parseIdList(r,false);
+        
 		//
 		//Loop through enteredList element by element
 		//removing elements that match id. Before we
-		//compare we parse each id in list to convert
+		//compare we parse each SQL indentifier in list to convert
 		//to normal form.
 		for (int ix=0; ix < enteredList_a.length; ix++)
-			if (!id.equals(IdUtil.parseId(enteredList_a[ix])))
+			if (!id.equals(IdUtil.parseSQLIdentifier(enteredList_a[ix])))
 				v.addElement(enteredList_a[ix]);
 		if (v.size() == 0)
 			return null;

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java?rev=589804&r1=589803&r2=589804&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java Mon Oct 29 11:49:45 2007
@@ -318,7 +318,7 @@
 		//Initialize our language connection context. Note: This is
 		//a bit of a hack. Unfortunately, we can't initialize this
 		//when we push it. We first must push a few more contexts. 
-		lctx.initialize(true);		
+		lctx.initialize();		
 
 		// Need to commit this to release locks gotten in initialize.  
 		// Commit it but make sure transaction not have any updates. 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericAuthorizer.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericAuthorizer.java?rev=589804&r1=589803&r2=589804&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericAuthorizer.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericAuthorizer.java Mon Oct 29 11:49:45 2007
@@ -64,17 +64,13 @@
 	private final String authorizationId; //the userName after parsing by IdUtil 
 	
 	GenericAuthorizer(String authorizationId, 
-						     LanguageConnectionContext lcc,
-					         boolean sqlConnection)
+						     LanguageConnectionContext lcc)
 		 throws StandardException
 	{
 		this.lcc = lcc;
 		this.authorizationId = authorizationId;
 
-		//we check the access level only if this is coming from a sql
-		//connection, not internal logSniffer or StageTrunc db connection
-		if(sqlConnection)
-			refresh();
+		refresh();
 	}
 
 	/*

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java?rev=589804&r1=589803&r2=589804&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java Mon Oct 29 11:49:45 2007
@@ -307,16 +307,11 @@
 		triggerTables = new ArrayList();
 	}
 
-	public void initialize(boolean sqlConnection) throws StandardException
+	public void initialize() throws StandardException
 	{
 		//
 		//Creating the authorizer authorizes the connection.
-		authorizer = new GenericAuthorizer(IdUtil.getUserAuthorizationId(userName),this, sqlConnection);
-
-		//we can ignore the following if this is a database connection
-		//associated with internal thread such as logSniffer and StageTrunc
-		if(!sqlConnection)
-			return;
+		authorizer = new GenericAuthorizer(IdUtil.getUserAuthorizationId(userName),this);
 
 		/*
 		** Set the authorization id.  User shouldn't