It is difficult to define the difference but below are some example scenarios:
Example 1:
Customer: My PostgreSQL database won't start
Smedia: What is the error you are recieving?
Customer: Something about not having enough shared memory.
Smedia: You probably need to increase the shared memory available to PostgreSQL,
you can do this by increasing the kernel.shmmax parameter in /etc/sysctl.conf.
Customer: Can you log into our machine and take care of this for us?
Smedia: Yes but it will be considered consulting.
At this point, the customer would be responsible for the cost of the incident plus the time and materials consulting associated with performing the external work to the incident.
Example 2:
Customer: I am trying to code a SET OF function to return a SET based on computed values.
Smedia: Great, what can we do to help?
Customer: I am trying to remember the exact syntax for creating a type.
Smedia: No problem, please refer to Set Returning Function at this website.
Customer: Oh I see, I just forgot to be explicit.
Example 2 would be a single incident.
Example 3:
Customer: I am getting a syntax error on line 32 of the function that I have
attached to this email.
Smedia: You are missing a semi-colon and need to predefine the variable.
Example 3 would be a single incident.
Example 4:
Customer: Can you write me a function that computes the value of X?
Smedia: Sure.
Example 4 would be consulting.